Unicode 在VS2015中,如果没有BOM,如何以UTF-16 LE编码保存文件?

Unicode 在VS2015中,如果没有BOM,如何以UTF-16 LE编码保存文件?,unicode,visual-studio-2015,byte-order-mark,utf-16le,Unicode,Visual Studio 2015,Byte Order Mark,Utf 16le,在这里,你可以找到我在下面复制的表1。请注意,此表第三列的标题指定:UTF-16LE w/或w/o BOM。我能够保存包含以下代码段的文件 #include <iostream> int main() { char c[] = u8"屰"; int i = 1; } 通过选择菜单选项“高级保存选项…”。。。在VS2015的“文件”菜单下,使用Unicode代码页1200,该代码页与使用BOM的UTF-16LE编码完全对应。这可以在下面的第二张图片中检查出来,在那里我

在这里,你可以找到我在下面复制的表1。请注意,此表第三列的标题指定:UTF-16LE w/或w/o BOM。我能够保存包含以下代码段的文件

#include <iostream>
int main()
{
    char c[] = u8"屰";
    int i = 1;
}
通过选择菜单选项“高级保存选项…”。。。在VS2015的“文件”菜单下,使用Unicode代码页1200,该代码页与使用BOM的UTF-16LE编码完全对应。这可以在下面的第二张图片中检查出来,在那里我粘贴了用二进制编辑器获得的文件图像的副本。可以看到文件上的前两个字节是0xFF 0xFE,表示UTF16-LE编码的BOM。但是我在高级保存选项中找不到选项。。。对话框,用于使用UTF-16LE编码保存我的文件,而不使用BOM表。我该怎么做


这不是VS2015的选项。即使是流行的,也没有不带BOM的UTF-16选项


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

奇怪的是,我上面链接的文章的作者提到了这种可能性。但在现实中,你无法测试它。无论如何,谢谢你的回答。@JoãoAfonso作者提到了源和执行字符集的编译器开关。编译器不是IDE,因此可能支持使用正确的开关从命令行进行编译。但表1和表2中UTF16-LE w/或w/o BOM列下仍然存在错误。作者说,中文字符的内部UTF8表示将是E5 B1 B0,但对于没有BOM的情况,这是不正确的。如果文件没有签名,则翻译将从代码页1252转换为UTF8,与表中下一列的UTF8相同,UTF8不带BOM,字符表示的最终结果将不同于上面的结果E5 B1 B0。