在开发板上通过Qt实现一个接收串口的数据并显示的程序,接收到的字母和数字都能正常显示,可是接收汉字时只能显示问号(??)不能显示出汉字来。如果在程序中输入汉字运行的话可以正常显示汉字,但是通过串口的就不行。我的代码如下:
#include "widget.h"
#include <QTextCodec>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
Widget w;
w.show();
return a.exec();
}
//读取数据
void Widget::readMyCom()
{
QByteArray temp = myCom->readAll();
if(!temp.isEmpty()){
QString string = QString::fromLocal8Bit(temp);
settingDisplay(string);
} else {
QString string ="1 0 0 0 0 10 10 50 10 10 255 255 255 显示内容";
settingDisplay(string);
}
}
Qt?串口 Qt 串口 嵌入式开发
------解决方案--------------------
这是接收端代码,Qt的
------解决方案--------------------
编码这个问题 一直是困扰国内开发者的头痛问题,串口接收就像http连接一样 对需要设置一样的编码,这样双方都能正确显示汉字