摘要:qt项目在windows下运行时,界面中的中文乱码,大概率是编译器选择的不对。
在windows设备上开发的一个qt项目,开发设备上正常运行,无乱码,现在需要在其他windows电脑上运行,运行后界面中文变成乱码。
整个处理过程如下:
1. qtcreator打开项目,点击类文件,提示没有utf-8编码,然活通过第三方编辑器notepad++/sublimer另存为utf-8编码,重新运行,界面仍然乱码;
2. 在qt项目配置文件.pro文件中增加:
QMAKE_CXXFLAGS += -finput-charset=UTF-8 -fexec-charset=UTF-8
重新编译运行,界面仍然乱码;
3. 在main.cpp中增加:
QTextCodec *codec = QTextCodec::codecForName("UTF-8");
QTextCodec::setCodecForLocale(codec);
重新编译运行,界面仍然乱码;
最终解决办法,将编译器从MinGW改为MSVC编译器,重新编译运行,界面不再乱码,问题得到解决。
需要注意:MSVC编译器需要安装visualstudio。
另外,有时候其他设备上运行正常的项目,换电脑不能运行,编译不通过,提示qt相关的类找不到,也是编译器问题,也可通过切换编译器解决。