BOM' BOM的位置是什么?文件开头或文件末尾的字符?

时间:2014-06-04 12:41:26

标签: c++ utf-8 byte-order-mark

我想知道“BOM”的位置。文件中的字符以及如何查看此字符。如果有人解释什么是BOM字符会很有帮助。    我想做的是我有ANSI文件,我想将其转换为UTF-8编码\ 我怎么能这样做?

提前致谢

1 个答案:

答案 0 :(得分:3)

  

我想知道文件中”BOM“字符的位置

BOM位于文件的开头。

为什么你不去谷歌或在维基百科上查找。

  

如何查看此字符

通常你不能,但在某些情况下会显示它。

  

如果有人解释什么是BOM字符

会很有帮助

BOM最初是字节顺序标记,用于轻松确定UTF-16或UTF-32编码文本的字节顺序。在Windows中,它也用于识别UTF-8编码的文件,特别是如果没有BOM,visual c ++编译器将错误地识别编码。不幸的是,关于BOM的维基百科文章偏向于Unix风扇男孩的观点,其中UTF-8文件应该与Windows中的常见要求不相容 1 (它有助于认为Microsoft是创始成员Unicode联盟的内容,因此Unicode标准中没有任何内容与Windows中的约定相反。

  

我想做的是我有ANSI文件,我想将其转换为UTF-8编码\我该怎么做

要准确转换,您需要知道文件使用的确切编码。请注意,“windows ansi”是一组可能的编码,其中给定Windows安装上的窗口ansi是GetACP API函数报告的代码页。鉴于编码知识,您可以使用Windows API的MultiByteToWideChar或C库的mbcstowcs,或C ++ 11 C ++库的codecvt


1)旧的g ++编译器在BOM上用UTF-8源代码堵塞,与visual c ++相反,需要BOM。很高兴现代版的g ++接受BOM。正如标准所要求的那样。