如何在VS2015中以无BOM的UTF-16 LE编码保存文件?

时间:2017-01-29 21:14:30

标签: unicode visual-studio-2015 byte-order-mark utf-16le

this link中,您会找到我在下面重现的表1。请注意,此表中第三列的标题指定:UTF-16LE w/ or w/o BOM。我能够保存包含下面代码段的文件,

#include <iostream>
int main()
{
    char c[] = u8"屰";
    int i = 1;
}

选择VS2015中Advanced Save Options...菜单下的菜单选项File,其中Unicode codepage 1200正好是与UTF-16LE encoding with BOM对应的0xFF 0xFE。这可以在下面的第二张图片中查看,其中我粘贴了使用二进制编辑器获得的文件图像的副本。可以看到文件的前两个字节是UTF16-LE encoding,代表Advanced Save Options...的BOM。但我无法在UTF-16LE encoding without BOM对话框中找到使用int **保存文件的选项。我该怎么做?

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:1)

它不是VS2015的选项。即使是热门的Notepad++也没有没有BOM的UTF-16选项。

如果只是为了实验而这样做,请使用任何十六进制编辑器在保存后删除BOM。 VS2015内置了一个二进制编辑器。将文件保存为带有BOM的UTF-16LE后,使用二进制编辑器关闭并重新打开该文件并删除BOM。我发现VS2015在没有它的情况下无法正确打开文件,这可能是该选项无法使用的原因。