客戶端是硬件設(shè)備,要求ws通信編碼為GBK,如何將GatewayWorker
和GatewayClient
編碼設(shè)置成GBK?
將GatewayClient
通信數(shù)據(jù)轉(zhuǎn)為GBK
嘗試json_encode之前將漢字轉(zhuǎn)為GBK,結(jié)果是亂碼。
嘗試json_encode之后整體轉(zhuǎn)為GBK,結(jié)果是亂碼。
嘗試使用 http://m.wtbis.cn/q/3576 方案
嘗試后繼續(xù)亂碼
json_encode(mixed $value)
value
待編碼的 value ,除了 資源(resource) 類型之外,可以為任何數(shù)據(jù)類型。
所有字符串?dāng)?shù)據(jù)的編碼必須是 UTF-8。
json不支持gbk,必須是utf8
https://www.php.net/json_encode
用iconv將utf-8格式轉(zhuǎn)成gb2312后,再用urlencode轉(zhuǎn)碼一下就可以使用json_encode壓縮了。然后再urldecode解碼。
這樣解決了json_encode只支持utf8的問題,但是提交給GatewayWorker的時候,GatewayWorker是按照utf8處理的,導(dǎo)致中文亂碼。
$val = iconv("UTF-8", "gb2312//IGNORE", $val);
Gateway::sendToUid($client_id, $val);