Qt代码区字符编码转换
在做通讯练习的时候,发现发送给小助手字符乱码,图片如下
本人Qt Creator是UTF-8,需要改成gbk,代码如下
#include<QTextCodec> // 提供字符编码转换
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 QTextCodec* gbk = QTextCodec::codecForName("gbk"); 2 QString message = ui->textEditWrite->toPlainText(); 3 QByteArray gb = gbk->fromUnicode(message); 4 5 tcpSocket->write(gb);
最后效果如下
反过来,小助手发送过来的‘gbk’字符需要这样转换显示才不会乱码
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
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 }