用QT编写一个串口通信的程序。为什么标题为中文的时候显示是乱码,标题为英文则是对的。

#include<QtGui/QApplication>#include<QTextCodec>#include"mainwindow.h"intmain(intargc... #include <QtGui/QApplication>#include <QTextCodec>
#include "mainwindow.h"

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QTextCodec::setCodecForTr(QTextCodec::codecForLocale());
//使程序可处理中文

MainWindow w;

w.setWindowTitle("串口");//命名主窗口标题为“串口”,此时出现的是乱码

w.show();

return a.exec();
}
展开
 我来答
百度网友180fa75
2013-09-21 · TA获得超过337个赞
知道小有建树答主
回答量:416
采纳率:100%
帮助的人:247万
展开全部
中文编码问题,在主函数加入:
QTextCodec *codec = QTextCodec::codecForName("System"); //获取系统编码
QTextCodec::setCodecForLocale(codec);
QTextCodec::setCodecForCStrings(codec);
QTextCodec::setCodecForTr(codec);
肯定就ok啦
壕铭爽
2013-09-18 · 超过23用户采纳过TA的回答
知道答主
回答量:127
采纳率:0%
帮助的人:49.4万
展开全部
应该是中文的编码有两种,两个字节表示一个汉字。应该是QT不支持汉字库,或者你每次接收到一个字符之后就直接显示那个字符了,但是汉字是两个字符显示一个汉字的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
锦衣韵嘉
2013-09-18
知道答主
回答量:11
采纳率:0%
帮助的人:11.1万
展开全部
QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
分别试试看
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式