- 论坛徽章:
- 0
|
本帖最后由 csersoft 于 2014-02-06 18:33 编辑
folklore 发表于 2014-02-06 18:25 ![]()
我记得VS是可以选择不用BOM的。
它认没有BOM的UTF-8
VS IDE是认无BOM UTF8,但是它的编译器不认。我用的VS 2013,VS 2012也测试过。
cl 没有提供类似gcc指定编码方式的编译选项,只能使用默认值或靠自动识别:
以下内容摘自网上:
对应gcc的-finput-charset,cl 能自动识别源文件的编码方式,cl 支持的源文件编码方式有:UTF-16(BE,LE均可,有无BOM均可),UTF-8(带BOM),除此之外的源文件均认为是ANSI编码方式( 包括不带BOM的UTF-8 )。所以使用VC编译不带BOM的UTF-8文件时要特别注意,vc会将此文件当做ANSI也就是GBK编码格式。否则经常会出这样的警告:该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失。
对应gcc的-fwide-exec-charset, cl 固定使用UTF-16编码方式。
对应gcc的-fexec-charset, cl 固定使用ANSI编码方式。
不知道VS的CL有没有类似GCC 的-finput-charset的参数。 |
|