Qt中文乱码解决方案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Qt中⽂乱码解决⽅案
⼀、问题是什么?
在学习Qt编程的过程中,⼤多数⼈都遇到过中⽂乱码的问题。

总结起来有三类:
1. Qt Creator中显⽰的汉字变为乱码,编辑器上⽅有“Could not decode "..." with "UTF-8"-encoding. Editing not possible.”的错误提⽰。

此时,出现乱码的⽂档是不可编辑的。

2. Qt Creator中显⽰的汉字正常,但编译的时候会出现“常量中有换⾏符”等⼀系列错误报警。

其实,这也是⽂字编码的问题。

3. 编译时未报错,但⽣成的程序中⽂乱码。

原因. Qt Creator的编辑器默认使⽤UTF-8(代码页65001)编码来读取⽂本⽂件。

⽽Visual Studio保存⽂件时默认采⽤的是本地编码,对于简体中⽂的Windows操作系统,这个编码就是GB2312(代码页936)。

如果使⽤Qt Creator读取由
Visual Studio创建的⽂件,那么编辑器就会以UTF-8编码格式读取GB2312编码格式的⽂件,出现中⽂乱码,因为这两套编码系统对汉字编码是不同的。

⾄于英⽂部分不会乱码,是因为UTF-8和GB2312在单字节字符部分是兼容的。

解决办法:
⾸先,要把项⽬中所有的头⽂件和源⽂件全都转换成UTF-8+BOM编码保存,全选⽂本,然后右键选择Add UTF-8 BOM on save。

1. 第1个问题不存在了。

2. 第2个问题也不存在了。

3. 第3个问题,你也可以⽤上个⽅案中的⽅法来解决,但有更好的⽅法。

那就是要⽤到中⽂字符的头⽂件和源⽂件开头加上MSVC的⼀个宏:
1#if _MSC_VER >= 1600
2#pragma execution_character_set("utf-8")
3#endif。

相关文档
最新文档