客户端是硬件设备,要求ws通信编码为GBK,如何将GatewayWorker和GatewayClient编码设置成GBK?
GatewayWorker
GatewayClient
将GatewayClient通信数据转为GBK 尝试json_encode之前将汉字转为GBK,结果是乱码。 尝试json_encode之后整体转为GBK,结果是乱码。
尝试使用 https://www.workerman.net/q/3576 方案 尝试后继续乱码
json_encode(mixed $value) value 待编码的 value ,除了 资源(resource) 类型之外,可以为任何数据类型。 所有字符串数据的编码必须是 UTF-8。
json不支持gbk,必须是utf8 https://www.php.net/json_encode
用iconv将utf-8格式转成gb2312后,再用urlencode转码一下就可以使用json_encode压缩了。然后再urldecode解码。 这样解决了json_encode只支持utf8的问题,但是提交给GatewayWorker的时候,GatewayWorker是按照utf8处理的,导致中文乱码。
json_encode前把gbk转为utf-8
我是需要按照gbk传递,原本编码是utf8
$val = iconv("UTF-8", "gb2312//IGNORE", $val); Gateway::sendToUid($client_id, $val);
json不支持gbk,必须是utf8
https://www.php.net/json_encode
用iconv将utf-8格式转成gb2312后,再用urlencode转码一下就可以使用json_encode压缩了。然后再urldecode解码。
这样解决了json_encode只支持utf8的问题,但是提交给GatewayWorker的时候,GatewayWorker是按照utf8处理的,导致中文乱码。
json_encode前把gbk转为utf-8
我是需要按照gbk传递,原本编码是utf8