QT5中文乱码解决方案
在QT5编程时,经常会出现中文乱码的情况,源码如下:
#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.setWindowTitle("你好,世界!");
w.show();
return a.exec();
}
编译运行之后中文不能正常显示,如图:
为此专门查了好多资料,但是都没有解决这个问题,后来尝试了很多次之后,发现将源码修改一下即可。
#include "mainwindow.h"
#include <QApplication>
#include <QString>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.setWindowTitle(QString::fromLocal8Bit("你好,世界!"));
w.show();
return a.exec();
}
.show();
return a.exec();
}
上面这种办法,基本上每处需要中文显示的地方都要加一遍,比较麻烦。因此找到一种一劳永逸的办法,
在文件开头加入如下语句,即可随意设置中文了。
#pragma execution_character_set("utf-8")
不过这种可能会出现如下警告信息:
warning: ignoring #pragma execution_character_set [-Wunknown-pragmas]
#pragma execution_character_set("utf-8")
遇到这种情况不要慌,像下面一样改一下就可以了。
#if _MSC_VER >= 1600
#pragma execution_character_set("utf-8")
#endif