我有一个文件,开头如下(从od -x <filename>
十六进制)
8FAE 3800 7C00 2200 4300 6800 6100 7200
对应的字符是
®8 |" C h a r
它应该是8|"Char
的,从数字8和管道字符开始,依此类推。
- 前两个字节
8fae
某种标头或 BOM 吗? - 我可以假设编码是 UTF-16 吗?
它们的第一个字符可能是 BOM,尽管它们看起来并不熟悉。UTF-8 使用 0xEF,0xBB,0xBF,而 UTF-16 使用 U+FEFF 或 0xFE,0xFF。
请记住,对于 UTF-8,BOM 是可选的(即,有带有 BOM 的 UTF-8,而没有 BOM 的 UTF-8)。因此,不幸的是,当没有BOM时,很难安全地识别文件的编码。一些库或插件使用字符字典来猜测编码。