Qt使用MSVC编译器中文乱码解决方法

时间:2022-06-16 06:30:59

MSVC在编译时,会根据源代码文件有无BOM来定义源码字符集。如果有BOM,则按BOM解释识别编码;如果没有,则使用本地字符集,对于简体中文的Windows操作系统就是GB2312。那么,当MSVC遇到一个没有BOM的UTF-8编码的文件时,它通常会把文件看作GB2312的来处理。如果文件全是英文没有问题,但如果包含中文MSVC编译器就不能正常识别字符,编译就会报错。

解决办法:

  • 把文件编码改为UTF-8 带BOM
  • 在要加中文的cpp或h文件加入该预处理

``` c++

pragma execution_character_set("utf-8")