QT中文乱码解决方法

由于我毕设的界面是用Qt做的,之前没怎么接触过Qt,所以实现过程中遇到不少小问题,头一个就是这个。

现如今宝宝将其记录下来,供同样有需要的同学或者自己以后方便查阅。

1、所有文件编码格式须一致

不统一的话,很可能出现部分中文显示正常,部分是乱码的情况。这个我是让男票用editplus统一修改了编码格式。文件只要是自己生成的,一般都是一样的,但是也不排除某个cpp文件借鉴他人导致格式不统一。至于如何用editplus修改文件的编码格式,网上资料也不少,大家百度一下即可。

2、添加代码和头文件

我添加在了main函数中

#include <QTextCodec>  //头文件
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GB2312"));

或者

QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GBK"));
QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));
QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK"));

据大神说上面那一句话要比下面那四句代码稍微靠谱点,我试了两种方法都可实现。

原文地址:https://www.cnblogs.com/JJJanepp/p/5380026.html