Qt Creator MSVC版本中文乱码
一、场景
在使用msvc版本的Qt开发的时候,会遇到了中文乱码的问题。以我的电脑场景说下解决方式。
二、配置
Qt:Qt 5.8.0(msvc 2015,32 bit)
操作系统:win10 64位。
三、原因
1. Qt Creator的编辑器默认使用UTF-8编码方式来读取文本文件。在Windows中文简体操作系统,编码使用的是GB2312。而Visual Studio保存文件时默认采用的是本地编码方式。如果使用Qt Creator读取由Visual Studio创建的文件,那么编辑器就会以UTF-8编码格式读取GB2312编码格式的文件,出现中文乱码,因为这两套编码系统对汉字编码是不同的。在英文下,UTF-8和GB2312格式下一个字母是1个字节。中文下,一个汉字GB2312占2个字节,UTF-8下占3个字节。
2. MSVC在编译时,会根据源代码文件有无BOM来定义源码字符集。如果有BOM,则按BOM解释识别编码;如果没有,则使用本地字符集,对于简体中文的Windows操作系统就是GB2312。那么,当MSVC遇到一个没有BOM的UTF-8编码的文件时,它通常会把文件看作GB2312的来处理。如果文件全是英文没有问题,但如果包含中文,编译器就会出现误读。这种情况下,Qt Creator编辑器是正常的。
四、解决方式
1、更改Qt的设置
2、代码中QString字符串使用
QStringLiteral("中文汉字")
如果还有其他的设置方式,稍后会在这里继续更新。
本文原创作者:冯一川(ifeng12358@163.com),未经作者授权同意,请勿转载。