基于每个文件或每个扩展名更改编码
Posted
技术标签:
【中文标题】基于每个文件或每个扩展名更改编码【英文标题】:Change encoding on a per file or per extension basis 【发布时间】:2012-09-05 07:44:07 【问题描述】:我正在使用 Microsoft Visual Studio Express 2012 for Web。似乎我用它打开的每个文件都被编码为 UTF-8。对于大多数将面向 Web 的文件来说,这很好。但是,我的项目中有专门用于构建目的的文件(例如,.bat 文件),这些文件必须以 ANSI 编码。
VS 中是否有任何配置设置来指定每个文件或每个扩展名的编码?或者,如果不指定编码,至少禁用自动转换为UTF-8?
【问题讨论】:
【参考方案1】:在 Visual Studio 中打开有问题的文件并...
在File
菜单上,单击Advanced Save Options
。
在Encoding
下拉列表中,选择Unicode (UTF-8 …
或您需要的编码。
点击OK
。
另见: how to change source file encoding in csharp project (visual studio / msbuild machine)?
【讨论】:
【参考方案2】:可以在“选项”对话框中配置以每次打开为基础处理给定扩展名的所有文件编码的选项。请参阅 Options, Text Editor, File Extension 上的 MSDN 页面。
导航到工具>选项>文本编辑器>文件扩展名。
对于 bat 扩展,我选择了Source Code (Text) Editor with Encoding。 with Encoding 部分意味着用户将获得关于在打开文件时使用何种编码的选项。此模式下的默认值为 Auto-detect,如果文件已使用该编码,则保留 ANSI 编码。否则,可以为单个文件明确指定它。
不幸的是,它似乎不记得上次打开文件时使用的设置,因此每次打开文件时都会提示输入编码设置。
【讨论】:
【参考方案3】:我也遇到了宽度 VS Studio 2012 的代码转换问题。即,我的 .js 文件中的字符串中有不符合 ansi 的字符,并且不可读的字符被输出到浏览器的 html 页面。 我发现接受脚本文件(如 .js)VS 2012 会创建 UTF-8 格式的所有文件。 *问题在于下面建议更改选项对话框中的默认值导致语法突出显示和 intelisense 在所有 .js 文件中停止工作。* 所以我的解决方案知道我将我的 .js 文件使用 notepad++ 转换为 utf-8 而没有 BOM。 通过这种方式,我的“不寻常”字符在浏览器中显示得很好,并且 intelisense 也可以正常工作。
【讨论】:
使用 Notepad++ 将 ANSI 代码转换为 UTF-8 对我来说是一个很好的解决方案,可以修复 HTML 字符集为 UTF-8 时显示不佳的特殊 ANSI 字符的页面。请记住进行转换,而不仅仅是从 ANSI 版本编码。以上是关于基于每个文件或每个扩展名更改编码的主要内容,如果未能解决你的问题,请参考以下文章
powershell 用于ping子网并报告是否使用每个IP地址或“空”的快速脚本。如果需要,可以扩展为重定向到文件。