首页 > 编程知识 正文

qt字符数组转换成string,qstring转char*中文乱码

时间:2023-05-03 19:18:35 阅读:146242 作者:4939

按钮技术交流群: 460189483UDP通信时,使用QByteArray接收到的数据,其中包括接收到的中文数据,在QString显示时,会出现乱码问题,所以找了几种方法,通过的漏洞都写出来了

//QString迁移到QByteArray方法。 这个没关系

//Qt5。 12qstringstr(Hello ); QByteArray bytes=str.toUtf8 (; //QString是QByteArray方法1qstringstr('Hello ); QByteArray bytes=str.toLatin1 (; //QString转换为q字节的方法2//q字节转换为QString的方法

方法1 :如果只进行字符串转换没有问题的话,有中文的话就会发生乱码

qbytearraybytes(Helloworld ); QString string=bytes; //QByteArray是QString方法1qbytearraybytes(Helloworld ); qstring字符串; string.prepend(bytes; //q从字节迁移到QString的方法2 qDebug () string; 方法解决了QQ出现乱码的问题,但没有解决QQ出现乱码的问题

qbytearraynamearray=array.mid (pro _ data _ pos,10 )从array数组的pos开始取10字节的qstring name=qstring 3360: from local///包含中文时会发生乱码的qstring name=qstring 33603360 from local 8bit (“机器人”); //这样显示中文没有问题,但是不能用变量替换机器人QLabel *label=new QLabel (); 标签设置(name; 解决方案:采用采样QTextCodec解码GBK编码方法解决

# includeqtextcodecqbytearraynamearray=array.mid (pro _ data _ pos,10 )从array数组的pos中获取10字节的qtextcodec*codec=() //nameArray无论是char*还是qbytearrayqlabel * label=new qlabel (; 标签设置(name; //这样中文显示就没问题了

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。