我想知道“BOM”的位置。文件中的字符以及如何查看此字符。如果有人解释什么是BOM字符会很有帮助。 我想做的是我有ANSI文件,我想将其转换为UTF-8编码\ 我怎么能这样做?
提前致谢
答案 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。正如标准所要求的那样。