Visual Studio新建的源文件的默认编码

本文讲述了在使用Visual Studio过程中遇到的关于源文件编码格式的问题。主要原因是使用NotePad++将源文件从GB2312转换为UTF-8带BOM格式,导致VS无法正确解析文件,出现警告与编译错误。通过调整文件编码为UTF-8无BOM解决了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原来VS新建的源文件默认的编码是根据系统locale选择的。我的是国标2312.我草。可坑死我了。一直不知道。

 

当时主要是需要用doxygen生成html文档,它默认的输入文件的格式是UTF-8,是不带BOM的。我就用NotePad++全部把源文件转换成UTF-8带BOM编码格式的了。然后我又一次用VS打开项目,结果编译不过,报了 

warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失

并且报了相关的奇怪错误。原因就是文件中有不可见的字符。(就是BOM头)。

 

分析下过程:

 

原来最原始的源文件是不带BOM头的。

 

后来用NotePad++ 转换成带BOM头的了。就是NotePad++ 上的UTF-8编码格式(它默认是带BOM的)

 

后来没转回去,使用的是带BOM的,VS的当前代码页不是带BOM的。所以直接就说有不可见的字符。所以就编译报错了。

 

所以。单击选择文件,在VS中的菜单栏中选择文件的高级保存选项,选择UTF-8带签名的代码页就行了。

 

 

 

references:

http://blog.youkuaiyun.com/enjoy517905407/article/details/37958035

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值