Qt5中文乱码,同一个工程中的对话框,有的对话框显示正常,有的不行
开发环境:win7,64bit。
Qt5.6.0,64位。
编译器采用VS2013.
源文件编码:使用NotePad++转换为UTF-8带BOM。
1. 以前的解决办法:
(1) 创建文件:charsetting.inc
#ifndef CHARSETTING_INC
#define CHARSETTING_INC
#pragma execution_character_set("utf-8")
#endif // CHARSETTING_INC
(2) 修改pro文件:
win32::QMAKE_CXXFLAGS += -FIcharsetting.inc
win32::QMAKE_CFLAGS += -FIcharsetting.inc
直接在cpp文件中添加:#pragma execution_character_set("utf-8")是不起作用的。
2. 当时发现仍然有部分对话框类中显示中文乱码,解决办法是:QString str = QString::fromLocal8Bit("我是中文");
3. 偶尔还发现新建立的文件,运行显示乱码,解决方法是:使用TXT,先保存该文件为ANSI,然后在保存为UTF-8,然后就好了。
4. 后期,该工程添加了新的文件后,对于新的文件,上述方法不行了,同时还尝试了其他方法:
(1)Qt国际化,使用翻译文件。
(2)文件是UTF-8编码格式的。使用NotePad++对格式进行了处理(UTF-8 BOM编码)。
(3)工具-->选项-->文本编辑器-->行为,在右侧选项界面找到文件编码选项,设置为 UTF-8。