Qt代码区字符编码转换

在做通讯练习的时候,发现发送给小助手字符乱码,图片如下

 

本人Qt Creator是UTF-8,需要改成gbk,代码如下

#include<QTextCodec>  // 提供字符编码转换
1 QTextCodec* gbk = QTextCodec::codecForName("gbk");
2 QString message = ui->textEditWrite->toPlainText();
3 QByteArray gb = gbk->fromUnicode(message);
4 
5 tcpSocket->write(gb);
View Code

 

最后效果如下

 

 

反过来,小助手发送过来的‘gbk’字符需要这样转换显示才不会乱码

 1 connect(tcpSocket,&QTcpSocket::readyRead,
 2                 [=]()
 3         {
 4             QByteArray buf = tcpSocket->readAll();
 5             
 6             // 设定需要转换的字符编码格式
 7             QTextCodec* gbk = QTextCodec::codecForName("gbk");
 8 
 9            // 转换
10             QString str = gbk->toUnicode(buf);
11              ui->textEditRead->append(str);
12         }    
View Code

 

posted @ 2020-02-28 17:03  补码  阅读(582)  评论(0编辑  收藏  举报