Character encoding 根据每个文件或每个扩展名更改编码

Character encoding 根据每个文件或每个扩展名更改编码,character-encoding,visual-studio-2012,visual-studio-express,Character Encoding,Visual Studio 2012,Visual Studio Express,我正在使用Microsoft Visual Studio Express 2012 for Web。似乎我打开的每个文件都被编码成UTF-8。对于大多数面向web的文件,这很好。但是,我的项目中有专门用于构建目的的文件(例如,.bat文件),这些文件必须用ANSI编码 VS中是否有任何配置设置,以指定每个文件或每个扩展名的编码?或者,如果未指定编码,则至少禁用自动转换为UTF-8?可以在“选项”对话框中配置一个选项,在每次打开的基础上处理给定扩展名的所有文件的编码。请参见第页的MSDN 导航到工

我正在使用Microsoft Visual Studio Express 2012 for Web。似乎我打开的每个文件都被编码成UTF-8。对于大多数面向web的文件,这很好。但是,我的项目中有专门用于构建目的的文件(例如,.bat文件),这些文件必须用ANSI编码


VS中是否有任何配置设置,以指定每个文件或每个扩展名的编码?或者,如果未指定编码,则至少禁用自动转换为UTF-8?

可以在“选项”对话框中配置一个选项,在每次打开的基础上处理给定扩展名的所有文件的编码。请参见第页的MSDN

导航到工具>选项>文本编辑器>文件扩展名

对于bat扩展,我选择了带有编码的源代码(文本)编辑器。with Encoding(带编码)部分意味着用户将获得打开文件时使用何种编码的选项。此模式中的默认值为“自动检测”(Auto detect),如果文件已使用ANSI编码,则保留ANSI编码。否则,可以为单个文件显式指定它


不幸的是,它似乎不记得上次打开文件时使用的设置,因此每次打开文件时都会提示输入编码设置。

我也遇到了代码转换问题。也就是说,在我的.js文件的字符串中有不符合ansi标准的字符,无法读取的字符被输出到浏览器的html页面。 我发现accept脚本文件(如.js)VS 2012会在UTF-8中创建所有文件。 *问题在于,下面建议更改选项对话框中的默认值导致语法高亮显示和IntelisSense在所有.js文件中都停止工作* 因此,我的解决方案是使用notepad++将.js文件转换为不带BOM的utf-8。
通过这种方式,我的“不寻常”字符在浏览器中显示得很好,而IntelliSense也工作得很好。

在Visual Studio中打开有问题的文件,然后

  • 文件
    菜单上,单击
    高级保存选项
  • Encoding
    下拉列表中,选择
    Unicode(UTF-8…
    或所需的编码
  • 单击
    OK
另见:

对于我来说,使用记事本++将ANSI代码转换为UTF-8是一个很好的解决方案,可以修复带有特殊ANSI字符的页面,这些字符在HTML字符集为UTF-8时显示不好。请记住进行转换,而不仅仅是从ANSI版本进行编码。