我想知道“BOM”字符在文件中的位置以及如何查看该字符。如果有人解释什么是 BOM 字符,将会很有帮助。 我想做的是,我有 ANSI 文件,我想将其转换为 UTF-8 编码\ 我该怎么做?
提前致谢
最佳答案
" I want to know the location of 'BOM' character in the file
BOM 位于文件的开头。
你为什么不在谷歌上搜索它或在维基百科中查找它。
" how can i view this character
通常情况下不能,但在某些情况下会显示。
" It will be helpful if somebody explain what is BOM character
BOM 最初是一个字节顺序标记,用于方便确定 UTF-16 或 UTF-32 编码文本的字节顺序。在 Windows 中,它还用于识别 UTF-8 编码文件本身,特别是如果没有 BOM,Visual C++ 编译器将错误识别编码。不幸的是,关于 BOM 的维基百科文章偏向于 Unix 爱好者的观点,其中 UTF-8 文件应该与 Windows 中的常见要求不兼容1(这有助于考虑到 Microsoft 是创始成员) Unicode 联盟的成员,因此 Unicode 标准中没有任何内容与 Windows 中的约定相反)。
" I want to do is that i am having ANSI file and i want to convert it into UTF-8 encoding \ how can i do that
要准确转换,您需要知道文件使用的确切编码。请注意,“windows ansi”是一组可能的编码,其中给定 Windows 安装上的 windows ansi 是 GetACP
API 函数报告的代码页。考虑到编码的知识,您可以使用 Windows API 的 MultiByteToWideChar
、C 库的 mbcstowcs
或 C++11 C++ 库的 codecvt
>.
1) 旧版的 g++ 编译器因 UTF-8 源代码中的 BOM 而被阻塞,这与需要 BOM 的 Visual C++ 相反。令人高兴的是,现代版本的 g++ 接受了 BOM。正如标准所要求的那样。
关于c++ - 'BOM' 字符在文件开头或文件结尾的位置是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24037750/