关于vs utf8 编码输出中文

参考博文 https://blog.csdn.net/10km/article/details/80203286
搞明白了MSVC对于不带BOM的UTF-8文件,默认会根据本地locale的设置来决定文件的编码(对于简体中文系统,就是GBK)。所以会对于UTF-8 without BOM的代码文件输出中文就是乱码。对于UTF-8 with BOM文件,会正确将其按照UTF-8来识别。
选项里面的 text editor 勾选 自动检测utf-8编码。
如果注释还有乱码,打开注释所在文件到文件tab,乱码立即变成正常了。

/u
tf-8 编译选项

MSVC对于UTF-8 without BOM格式支持不好,这个问题由来已久,在VS2015之前的版本一直存在。
在VS2015版本(Visual Studio 2015 Update 2),增加一个编译选项/utf-8,该编译选项的作用就是将源码字符集和执行文件字符集指定为UTF-8。增加该编译选项后,再重新编译运行,程序正确输出中文,问题解决。
在这里插入图片描述
在这里插入图片描述
#pragma execution_character_set(“utf-8”)

其实网上可以找到不少文章提到还有另一个解决办法, 就是在源码中插入预处理指令#pragma execution_character_set(“utf-8”)

#if defined(_MSC_VER) && (_MSC_VER >= 1900)    
# pragma execution_character_set("utf-8")    
#endif

Visual Studio 保存UTF-8 without BOM

为什么要用UTF-8 without BOM来保存源码?
主要的原因是linux下编译器不支持UTF-8 with BOM的源码编译,其实如果你的项目没有跨平台编译的要求,并不一定要将源码保存为UTF-8 without BOM格式。
如果你希望在Visual Studio中将源码保存为UTF-8 without BOM格式,如下设置一下高级保存选项就可以了。
默认是Unicode(UTF-8 带签名)-代码页65001,这里要修改为Unicode(UTF-8 无签名)-代码页65001
在这里插入图片描述

这样子编码在qt中也能跑.

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值