使用Qt开发界面的时候,发现经常出现一些中文乱码,后来在网上查了很多资料了,终于解决了。
主要有两种解决方法:
方法一:
将这行代码:
label.setText(QObject::tr("同一个世界,同一个梦想!"));
修改为:
label.setText(QString::fromUtf8("同一个世界,同一个梦想!"));
结果显示就对了!
方法二:
将这行代码:
QTextCodec::setCodecForTr(QTextCodec::codecForName("gb18030"));
修改为:
QTextCodec::setCodecForTr(QTextCodec::codecForName("utf8"));
结果就对了!
这两种方法,都是使用了utf8字符集!
代码如下:
#include <QtGui/QtGui>
#include <QtGui/QDialog>
#include <QtCore/QTextCodec>
#include "mainwindow.h" //自己写的一个头文件
#include "iostream"
using namespace std;
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
// 以下部分解决中文乱码
QTextCodec::setCodecForTr(QTextCodec::codecForName("GB2312"));
QTextCodec::setCodecForLocale(QTextCodec::codecForName("GB2312"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GB2312"));
// 以上部分解决中文乱码
MainWindow w;
w.show();
return a.exec();
}