-
Notifications
You must be signed in to change notification settings - Fork 1.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Bug]: 发送中文消息中包含单数空格或特殊字符会导致错误 #1295
Comments
#1270 也有着同样的问题 |
补充测试:发送QQ私聊消息提示OK,但是实际上无法收到所发送的内容(不会报错,但是消息也没收到) |
经过进一步测试,以下情况会导致错误(注意:为了明确空格字符会将空格以[空格]进行表示单个空格) |
这个太奇怪了, 有空我会进一步测试 |
确实,我一开始以为是ws框架问题,但是经过测试后不论是httppost提交还是说是反向ws都有这个问题,不排除go语言导致的 |
miraigo发上面那句话也失败了 协议本身哪里不对劲 |
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。1 |
貌似40个2字节或者3字节的unicode+1个ASCII会发送失败
|
会不会是处理消息长度的时候出的问题,当编码长度不同的字符混在一个字符串中的时候,我之前也出现过类似问题,把数据改成[]rune类型再判断长度就可以了。 只是一个猜测,仅供参考。 |
大佬几时可以看一下这个问题呢?这段时间触发这个问题太频繁了,使用起来有很多的问题 |
大佬,在最新版本中此问题仍旧存在 |
v1.0.0-rc1在Windows平台使用,也遇到了这个问题 |
找到问题了,换行空格相关的; |
应该是超过多少字符需要使用换行符,以及换行符前后不要有空格;我自己是换行符前面有空格所以发不出 |
我测试是发现因为中文符合导致的,暂时的办法就是中文符号转英文,可能是中文符号长度导致的bug |
如果内容是:你好,晴 天【发不出】 |
我这边倒时都可以,用postman试了下 |
基本可以肯定了 和排版有关,他应该默认传输的每行都塞得下,服务器没处理换行;一旦有一行异常了,就视作无效消息应该是;和显示有关 |
提供一些发送失败的样例,但是我无法总结出相关原因: "2:vi.离开,起程 a.过去的,逝世的\n词源: 离开de-, 向下,离开。part, 分开,部分。即离开,分开。" 可用于帮助大家测试 |
似乎不能通过上述全部4个样例。可能不完全是回车前后有空格的问题 |
这几个测试用例好像把 \n 替换为 \r\n 就全部能正常发送了-。-但是前面的案例不清楚具体规则 |
似乎当消息长度为41,且其中的非中文字符为0或者1个时,必定出现该问题(上面 LiShiwei18 的那几个测试用例好像不属于这种) 下面的python脚本可以重现该流程-。-不清楚是腾讯服务器那边的问题,还是协议编码时的问题 “”“python import requests def Unicode(): def English(): text = '' print(text) access_token = "填入你的access_token" “”” |
请确保您已阅读以上注意事项,并勾选下方的确认框。
go-cqhttp 版本
v1.0.0-beta8-fix2
运行环境
CentOS
运行架构
AMD64
连接方式
WebSocket (反向)
使用协议
0 | iPad
重现步骤
使用反向WS发送如下内容:(action为send_guild_channel_msg)
{"guild_id":69327461639******,"channel_id":1769***,"message":"你站在桥上看风景,看风景的人在楼上看你。明月装饰了你的窗子,你却装饰了别人的梦。 "}
或使用HTTP发送如下内容以POST提交到/send_guild_channel_msg:
$post_data=array(
"guild_id"=>69327461639******,
"channel_id"=>1769***,
"message"=>"你站在桥上看风景,看风景的人在楼上看你。明月装饰了你的窗子,你却装饰了别 人的梦。"
);
只测试以上两种形式发送均无法正常发送
期望的结果是什么?
正常发送消息
实际的结果是什么?
使用反向WS和HTTP均报错
简单的复现代码/链接(可选)
日志记录(可选)
补充说明(可选)
只要发送的内容中包含单数空格,就会导致这个问题,目前HTTPPOST和R-ws都无法正常发送
#1270也反馈了此错误,本issues说明了更详细的原因,以及提供更详细的错误信息
The text was updated successfully, but these errors were encountered: