acmilan作者
11年2个月前修改于 11年2个月前IP:四川
792983
5楼
首先纠正一个错误,fopen和_wfopen的编码开关有ccs=UNICODE、ccs=UTF-8、ccs=UTF-16LE(不是ccs=UTF-16)。

再纠正一个错误,当ccs开关为ccs=UTF-8、ccs=UTF-16情况下只是无BOM时默认值不同而已,具体情况如下表:

Visual Studio 2005/2008:
ccs=UNICODE——(无BOM或新文件)ANSI——(EF BB BF)UTF-8——(FF FE)UTF-16LE
ccs=UTF-8——(无BOM或新文件)UTF-8——(EF BB BF)UTF-8——(FF FE)UTF-16LE
ccs=UTF-16LE——(无BOM或新文件)UTF-16LE——(EF BB BF)UTF-8——(FF FE)UTF-16LE

Visual Studio 2010以上的版本的MSDN中的说法:
ccs=UNICODE——(无BOM或新文件)UTF-16LE——(EF BB BF)UTF-8——(FF FE)UTF-16LE
ccs=UTF-8——(无BOM或新文件)UTF-8——(EF BB BF)UTF-8——(FF FE)UTF-16LE
ccs=UTF-16LE——(无BOM或新文件)UTF-16LE——(EF BB BF)UTF-8——(FF FE)UTF-16LE

实际上经我测试,Visual Studio 2010以上版本中,ccs=UNICODE时,默认还是ANSI,即对应关系并没有变化。

所有选项都能自动识别带BOM的文件,只是无BOM时的默认值各有不同。所以大家喜欢用什么用什么就行了。
评论
文号 / 792983

千古风流
名片发私信
学术分 4
总主题 466 帖总回复 2942 楼拥有证书:进士 学者 笔友
注册于 2009/05/30 21:22:42最后登录 2019/01/31 17:16:38
主体类型:个人
所属领域:无
认证方式:邮箱
IP归属地:0

个人简介

暂未填写
笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的