How to set standard encoding in Visual Studio

I am searching for a way to setup Visual Studio so it always saves my files in UTF-8.

I have only found options to set this project wide. Is there a way to set it Visual Studio wide?

222234 次浏览

我也不知道什么全球性的设置,但你可以试试这个:

  1. 以 UTF-8保存所有 VisualStudio 模板
  2. 编写一个 VisualStudio 宏/Addin,它将侦听 DocumentSaved 事件并将文件保存为 UTF-8格式(如果还没有)。
  3. 在源代码管理上放置一个代理,以确保新文件始终是 UTF-8。

您是否希望将文件另存为 UTF-8,因为您正在使用 ASCII 编码中会丢失的特殊字符?如果是这样,那么在 Tools > Options > Environment > Documents中有一个名为 Save documents as Unicode when data cannot be saved in codepage的 VS2008全局设置。如果启用此选项,则如果某些字符不能在其他默认代码页中表示,VS2008将另存为 Unicode。

此外,哪些文件是 没有被保存为 UTF-8?我所有的。C.Csproj.SIN,.配置,。As * x 等,默认情况下全部保存为 UTF-8(带有签名、字节顺序标记)。

什么

It is possible with 编辑配置.

EditorConfig 帮助开发人员定义和维护一致的编码 不同编辑器和 IDE 之间的样式。

这也包括文件编码。

EditorConfig 默认是内置的 VisualStudio2017,我有可用于 VS2012版本的插件。阅读更多 编辑器配置 VisualStudio 插件页

怎么做到的

您可以在您的文件夹结构中设置一个 EditorConfig 配置文件,其高度足以跨越所有预期的回购协议(如果您的文件真的分散在各处,那么直到您的驱动器根目录) ,并配置 设定 charset:

charset: set to latin1, utf-8, utf-8-bom, utf-16be or utf-16le to 控制字符集。

您可以在每个文件夹级别上添加过滤器和异常等,或者按照文件名/类型添加,如果您希望获得更好的控制的话。

一旦配置完成,那么兼容的 IDE 应该自动完成使匹配文件符合设置规则的任务。请注意,VisualStudio 不会自动转换所有文件,但是在 IDE 中使用文件时(打开和保存)会自动转换所有文件。

接下来呢

虽然可以在 Visual Studio 范围内进行设置,但我强烈建议仍然在解决方案版本控制中包含 EditorConfig 根目录,以便显式设置也能自动同步到所有团队成员。如果某些项目还没有设置自己的 Editor 或 config 文件,那么您的驱动器根 Editor 或 config 文件可以作为备用。

我用的是 Windows7。

控制面板. 区域和语言. 管理. 非 Unicode 程序的语言。

将“ Change system locale”设置为 English (美国)后。Vs2010的默认编码改为 Windows-1252。之前是 gb2312

我为一个 C + + 项目创建了一个新的 .cpp文件,在将新文件签入 TFS 之后,编码从该文件的属性页显示 Windows-1252。

问题是 Windows/Microsoft 应用程序在保存为非 ASCII 类型(UTF-8等)时,将字节顺序标记放在所有文件的开头。其他应用程序在读取文件顶部的这些奇怪的 Microsoft UTF-8字节顺序编码标记时经常中断。

这个问题的一个完美例子是在旧 IE 浏览器中触发 古怪模式,当用 UTF-8编码时,浏览器通常根据页面开始时的编码显示 XHTML 网页。当其他应用程序查看这些 UTF-8VisualStudio 页面时,它会造成混乱。

我通常不推荐 VisualStudio 扩展,但我这样做是为了解决这个问题:

修复文件编码: https://vlasovstudio.com/fix-file-encoding/

上面安装的 FixFileEncoding 删除了字节顺序标记,并强制 VS 在所有文件的顶部保存没有字节顺序标记(UTF-8)签名的所有文件。网页。安装后,转到工具 > 选项,然后选择“修复文件编码”。它应该允许您将所有保存设置为 UTF-8。将“ cshtml 添加到文件列表中,以 UTF-8格式保存,但不使用字节顺序标记,如下所示:”。(htm | html | cshtml) $)”。

现在在 VisualStudio 中打开一个文件。要验证其保存为 UTF-8到文件 > 另存为,然后在保存按钮选择“保存与编码”。默认情况下,它应该从编码列表中选择“ UnicoDE (无签名保存)”。现在,当您保存该页面时,它应该始终保存为 UTF-8,在 VisualStudio 中保存时,文件开头没有字节顺序标记。