aardio获取的字符串代码乱码的解决方法
"加电开机"的16进制是BC D3 B5 E7 BF AA BB FA
console.log(16进制汉字) 不乱码
…io.print(16进制汉字) 乱码
winform.edit.log((16进制汉字) )
aardio内核现在使用的代码是utf8,如果返回的编码是gbk的,显示出来就是乱码。
解决方法:r=string.fromto(r,936,65001); //GBK转UTF8
其中936是GBK的代码页,65001是utf8的代码页。
使用::Kernel32.GetACP()可以获取本地计算机的默认代码页。自己尝试了一下,返回的是936
例子: ipData = string.fromto(ipData,936,65001); //GBK汉字转UTF8汉字
tcpServer.onRead = function(hSocket,err){
var client = tcpServer.client(hSocket);
var remoteIP,remotePort = client.getRemoteIp();
var clientName = remoteIP+":"+remotePort
var Data = client.readAll(); //读取数据
//console.hex(Data); //打印收到16进制格式的数据
//console.log(Data); //打印收到ASII格式的数据
var ipData = remoteIP +" "+ Data;
console.log(ipData);
ipData = string.fromto(ipData,936,65001); //GBK汉字转UTF8汉字
winform.jieShou_text.log(ipData ,'\r\n' : null);
转载于:
https://blog.csdn.net/weixin_30344131/article/details/96601477
https://www.cnblogs.com/yaoyue68/p/10005983.html