2015-04-16 22 views
-1

我有如下開頭的文件(十六進制從od -x <filename>能猜一個字符編碼看二進制/十六進制數據嗎?

8fae 3800 7c00 2200 4300 6800 6100 7200

對應的字符是

®8| 「C HAR

它被預期爲8|"Char,從編號8和管道字符等。

  1. 是對前兩個字節8fae某種報頭或BOM的?
  2. 我可以假設編碼是UTF-16?
+1

看起來像'UTF-16'給我。那第一個字符總是可以是辮。 –

+1

我想你的意思是,「你怎麼樣?」如果你不知道,你不知道。 CP437可以解碼任何字節值的任何序列(不像任何Unicode編碼,Windows-1252,Windows-1251等等)。 –

+0

'8f ae'在UTF-16中不是'®',而是''''。你將不得不問問寫這個文件的人是什麼'8f ae'實際上代表的。很可能是某種二進制頭文件,但絕對不是BOM。但是顯示的其餘數據確實是UCS-2/UTF-16。 –

回答

1

他們首先字符可能是BOM雖然他們不眼熟。UTF-8使用0xEF,爲0xBB,爲0xBF而UTF-16使用U + FEFF或0xFE的, 0xFF的。

請記住BOM對於UTF-8是可選的(即,有BOM的UTF-8,還有沒有BOM的UTF-8)。不幸的是,當沒有BOM時,很難安全地識別文件的編碼。有些庫或插件使用字典來猜測編碼。

相關問題