项目场景:
ubuntu系统下的串口传输数据
Linux系统下进行串口之间进行传输数据时,中文乱码
问题描述
`对接收到的串口数据(QByteArray)显示在QLineEdit上时中文乱码
解决方案:
@Override
#include <QTextCodec>
void getScanData(QByteArray scanData) {
QTextCodec::ConverterState state;
//先转换成UTF-8的格式
QString text = QTextCodec::codecForName("UTF-8")->toUnicode(scanData.constData(), scanData.size(), &state);
if (state.invalidChars > 0)
{
// 再转换成GBK格式
text = QTextCodec::codecForName("GBK")->toUnicode(scanData);
}
ui->lineEdit->setText(text);
}