您是否希望将文件保存为UTF-8,因为您使用的特殊字符在ASCII编码中会丢失?如果是这样,则在Tools > Options > Environment > Documents中有一个VS 2008全局设置,名为Save documents as Unicode when data cannot be saved in codepage。启用此设置后,如果某些字符无法在其他默认代码页中表示,VS 2008将另存为Unicode。 另外,哪些文件 * 不 * 保存为UTF-8?默认情况下,我的所有.cs、.csproj、.sln、.config、.as*x等文件都保存为UTF-8(带有签名、字节顺序标记)。
6条答案
按热度按时间omtl5h9j1#
您是否希望将文件保存为UTF-8,因为您使用的特殊字符在ASCII编码中会丢失?如果是这样,则在
Tools > Options > Environment > Documents
中有一个VS 2008全局设置,名为Save documents as Unicode when data cannot be saved in codepage
。启用此设置后,如果某些字符无法在其他默认代码页中表示,VS 2008将另存为Unicode。另外,哪些文件 * 不 * 保存为UTF-8?默认情况下,我的所有.cs、.csproj、.sln、.config、.as*x等文件都保存为UTF-8(带有签名、字节顺序标记)。
ulydmbyx2#
什么
使用EditorConfig可以实现这一点。
EditorConfig帮助开发人员在不同的编辑器和IDE之间定义和维护一致的编码风格。
这也包括文件编码。
EditorConfig默认内置在Visual Studio 2017中,并且有一些插件可用于VS2012之前的版本。请参阅EditorConfig Visual Studio插件页面了解更多信息。
如何
您可以在文件夹结构中设置一个足够高的EditorConfig配置文件,以覆盖所有预期的repos(如果您的文件确实分散在各处,则可以一直到驱动器根目录),并配置设置
charset
:您可以添加过滤器和例外等对每个文件夹的水平或文件名/类型,如果你想更好的控制。
一旦配置好,兼容的IDE应该会自动做它的事情,使匹配的文件符合设置的规则。注意,Visual Studio不会自动转换所有的文件,但当你在IDE中处理文件时(打开和保存),它会做它的一部分。
下一步是什么
虽然您可以进行Visual Studio范围的设置,但我强烈建议您仍然在解决方案版本控制中包含EditorConfig根目录,以便显式设置也自动同步到所有团队成员。如果某些项目尚未设置自己的editorconfig文件,您的驱动器根目录editorconfig文件可以作为后备。
sg2wtvxw3#
我使用Windows7。
控制面板-区域和语言-管理-非Unicode程序的语言。
在我将“更改系统区域设置”设置为英语(美国)后,我的vs2010默认编码更改为
Windows-1252
。之前是gb2312
。我为一个C++项目创建了一个新的
.cpp
文件,在将新文件签入TFS后,该文件的属性页中的编码显示为Windows-1252。0yg35tkg4#
**问题是Windows/Microsoft应用程序在保存为非ASCII类型(UTF-8等)时,会在所有文件的开头放置字节顺序标记。**其他应用程序在读取文件顶部的这些奇怪的Microsoft UTF-8字节顺序编码标记时,通常会中断。
这个问题的一个很好的例子是在旧的IE浏览器中使用UTF-8编码时触发 quirsksmode,因为浏览器经常根据页面开头福尔斯编码来显示XHTML网页,当其他应用程序查看这些UTF-8 Visual Studio页面时,会造成混乱。
我通常不推荐Visual Studio扩展,但我这样做是为了解决这个问题:
修复文件编码:https://vlasovstudio.com/fix-file-encoding/
上面安装的FixFileEncoding删除了字节顺序标记,并强制VS在所有.NET页面顶部保存所有没有字节顺序标记的UTF-8文件。安装后,转到工具〉选项,然后选择“FixFileEncoding”。它应该允许您设置所有保存为UTF-8。将“cshtml”添加到文件列表中,以便总是保存为UTF-8,而不带字节顺序标记,如下所示:“.(htm|超文本标记语言|cshtml)$)"。
现在在Visual Studio中打开你的一个文件。要验证它是否保存为UTF-8,请转到文件〉另保存为,然后在保存按钮下选择“带编码保存”。它应该从编码列表中默认选择“UNICODE(保存时不带签名)”。现在,当你保存该页面时,它应该总是保存为UTF-8,在Visual Studio中保存时,在文件开头没有字节顺序标记。
b4qexyjb5#
我不知道全局设置,但你可以试试这个:
1.以UTF-8格式保存所有Visual Studio模板
1.编写一个Visual Studio宏/外接程序,该宏/外接程序将侦听DocumentSaved事件并以UTF-8格式保存文件(如果尚未保存)。
1.在源代码管理上放置一个代理,以确保新文件总是UTF-8。
wwwo4jvm6#
这是一个老主题,但我会在这里什么帮助我:Change Visual Studio default encoding