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

 

posted @ 2013-06-14 20:27  zlbeidou  阅读(207)  评论(0编辑  收藏  举报