使用的是qt5.9版本,在取lineedit中的中文字符转成字符串,后转成char*的过程中,在仅仅使用string str.tolocal8bit,是不起作用的,转换不了格式,输出的char*数组还是utf8格式的报文,解决方式如下:
添加
QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GBK"));
QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));
编译报错后,删除后面报错的两条指令即可。
比如Qstring str="汉字“;
utf8输出E6 B1 89 E5 AD 97
local8bit输出BA BA D7 D6
在qt提取lineedit中的中文字符串,通过tcp通信时,服务器接收乱码的情况,解决办法
原文:https://www.cnblogs.com/Tearsly/p/13044713.html