参考文章:http://blog.csdn.net/jiang1013nan/article/details/6667871
http://my.oschina.net/zjlaobusi/blog/138983
问题:为了方便Qt程序的开发,我采用的是在windows下编写好程序,然后在linux中编译再下载到开发板中运行的方式,程序的调试信息通过串口输出到windows下的secureCRT。其中windows中的Qt版本为5.3,linux及开发板中的Qt版本为4.8.5。由于linux系统中默认的字符编码为UTF-8,windows下的默认编码不是UTF-8(ANSI?),在windows下编写的程序在运行时显示屏和串口的调试信息中的汉字显示有可能乱码。
解决办法:
1.显示屏端:插入代码
1 QTextCodec::setCodecForTr(QTextCodec::codecForName("system"));(QT5中已取消)
2 QTextCodec::setCodecForCStrings(QTextCodec::codecForName("system"));(QT5中已取消)
3 QTextCodec::setCodecForLocale(QTextCodec::codecForName("system"));
2.secureCRT串口端:设置编码为UTF-8即可。