Qt中文乱码问题解决办法
今天尝试将程序移植到了另一台机子上,却出现了中文乱码问题
也许你在用这个方法实现中文化,但它确实不够严谨
1 #include <QTextCodec> 2 int main(int argc, char *argv[]) 3 { 4 QApplication app(argc, argv); 5 //设置中文开始 6 QTextCodec::setCodecForTr(QTextCodec::codecForName(“gb18030″)); 7 //设置中文结束 8 return app.exec(); 9 }
推荐个比较保险的办法
1 int main(int argc, char *argv[]) 2 { 3 QApplication a(argc, argv); 4 QTextCodec *codec = QTextCodec::codecForName(“System”); //获取系统编码 5 QTextCodec::setCodecForLocale(codec); 6 QTextCodec::setCodecForCStrings(codec); 7 QTextCodec::setCodecForTr(codec); 8 return a.exec(); 9 }
这里获取了系统字体编码,解决了我的问题,个人也觉得这个办法应该是个不错的解决方案。
也可能是字体选择不当造成的乱码
如果你始终解决不了乱码问题,可以尝试设置下字体,但其实是否是字体造成的乱码的方法很简单,如果出现的是一个个方块,便是字体设置不当,否则,优先考虑编码设置。
原文链接:http://www.linuxidc.com/Linux/2012-01/52201.htm