没有BOM的UTF-8

我有我需要他们保存在UTF-8(没有BOM)的JavaScript文件,每次我将它们转换为正确的格式在记事本+ + ,他们被还原回UTF-8的BOM,当我在Visual Studio中打开它们。 我怎么能阻止VS2010这样做?

另一个问题是,在Visual Studio中没有签名的UTF-8与没有BOM的UTF-8是一样的吗?

物料清单或字节顺序标记有时很烦人。 Visual Studio不会改变文件,除非你保存它(正如汉斯所说)。

这里是解决你的问题的方法:如果你想用其他编码保存一个文件,select另存为,并在文件对话框中扩展保存button,select“用编码保存”。 或者,如果你想永久删除这个设置,只需打开文件菜单并select“高级保存选项”,那么你应该select“没有签名的UTF-8”(这也回答了你的最后一个问题:)。 是“没有签名的UTF-8”与没有BOM相同。

我已经创build了修复文件编码扩展,以防止Visual Studio 2010+将BOM添加到UTF-8文件。

现在有图片。

  1. 转到File – > Save As

在这里输入图像说明

  1. 然后在保存button上单击三angular形,然后单击Save with Encoding..

在这里输入图像说明

  1. 点击确定覆盖文件,然后从编码列表findUTF-8 Without signature – >点击OK

在这里输入图像说明

希望这可以为你节省一些时间。

不幸的是,这不适用于csproj文件。 没有“高级保存选项”,即使您已将cs文件设置为“无签名的UTF-8”,csproj文件仍然会与BOM一起保存。 如果你使用VSS,它仍然抱怨项目文件。

对于vs2010 c ++,当源文件包含多字节字符(如中文)时,没有BOM的UTF8会出现问题。

这些字符在没有BOM的情况下将不能正确识别,导致编译失败。

最近我发现这个微小的命令行工具,它添加或删除任意UTF-8编码文件的BOM : UTF BOM Utils

一点缺点,你只能下载纯C ++源代码。 你必须创buildmakefile(例如用CMake )并自己编译,在这个页面上不提供二进制文件。 但是,对于软件开发人员来说,这不应该成为问题。

即使使用Dave81的解决scheme,Visual Studio 2015社区仍然恢复我的文件到UTF8-BOM每次我保存该HTML文件。

当我创build该HTML文件时,我右键单击该项目并select“添加”,然后添加一个HTML文件。

默认情况下,Visual Studio将在HTML文件中包含<meta charset =“utf-8”/>标记。

简单地去掉标签,然后应用Dave81的解决scheme,这个问题就是这个问题。

看起来Visual Studioparsing了你的html文件,当它看到这个标签时,它将文件转换为UTF8-BOM,而没有考虑原始文件格式(没有BOM的UTF8)。

**我会直接根据Dave81的解决scheme发表评论,但是我没有足够的观点来这样做…