Qt中文乱码的几种情况

测试环境:Qt5.9.6 ,使用VS2017的编译器。


一、乱码现象:
1.源代码中的中文显示乱码

image.png

2.编译时出现“常量中有换行符"的警告。

image.png


3.运行时软件界面中文显示乱码

image.png


二、解释:
相关内容:源码字符集、执行字符集
1.QtCreator编辑器默认采用UTF-8编码读取文件。VS默认采用本地编码(我们使用的windows一般为GB2312)
用QtCreator读取vs创建的文件则会出现冲突。
2.MSVC编译文件时根据源码文件有无BOM来定义源码字符集,如果有BOM就按BOM解释编码,如果没有就使用本地字符集。

3.MSVC的执行字符集默认是本地字符集。


三、推荐解决办法:
使用UTF-8  + BOM编码 (UTF-8跨平台)
1.把源代码的文件转化成UTF-8 (带BOM)
2.在使用中文的文件中加上:
#if _MSC_VER >= 1600
#pragma execution_character_set("utf-8")
#endif
告诉MSVC编译器,执行字符集是UTF-8。
注:使用UTF-8(BOM)的源码文件,用mingw编译时中文也是正常的。


演示站
上一篇:QLineEdit如何控制只能输入IP地址?
下一篇:Qt如何实现按钮文字在图标下方?

发表评论