tcpConnection中 send($send_buffer,$raw = false)方法 直接打印$send_buffer多出问号乱码

qq
2702 3 0
3个回答

xiuwang

正常吧。
世界上并不是所有通讯数据都是明文字符的,有些通讯数据是二进制无法在终端正常显示的。
比如你用记事本打开图片文件看到很多乱码一样的道理。
估计workerman内部有些数据是二进制数据传输的,所以是无法显示成字符串给你看到的。

当然不排除确实是文本数据,但是你cmd终端编码不对,显示乱码。比如打印的是utf8字符串,但是cmd终端是gbk编码,然后乱码,这种情况你改下cmd编码就行。具体百度下就有了

  • 暂无评论
qq

我设置cmd的编码GBK和utf-8还是多了个 ?问号 , 该问题主要是我用workerman发送信息到串口调试助手也显示多了个问号 -------》该方法下我用$send_buffer=preg_replace('//','',$send_buffer); 替换后刚开始时正常的 后来用户反馈后 我发现这样就无法发送数据了

  • 暂无评论
walkor

这个和通讯协议有关,有些通讯协议的数据是二进制并非明文的,打印出来是问号或者乱码是正常的。
并非所有通讯都是明文字符的。

  • 暂无评论
年代过于久远,无法发表回答
🔝