可以猜测字符编码查看二进制/十六进制数据吗?



我有一个文件,开头如下(从od -x <filename>十六进制)

8FAE 3800 7C00 2200 4300 6800 6100 7200

对应的字符是

®8 |" C h a r

它应该是8|"Char的,从数字8和管道字符开始,依此类推。

  1. 前两个字节8fae某种标头或 BOM 吗?
  2. 我可以假设编码是 UTF-16 吗?

它们的第一个字符可能是 BOM,尽管它们看起来并不熟悉。UTF-8 使用 0xEF,0xBB,0xBF,而 UTF-16 使用 U+FEFF 或 0xFE,0xFF。

请记住,对于 UTF-8,BOM 是可选的(即,有带有 BOM 的 UTF-8,而没有 BOM 的 UTF-8)。因此,不幸的是,当没有BOM时,很难安全地识别文件的编码。一些库或插件使用字符字典来猜测编码。

最新更新