我想知道Windows如何解釋字符,例如:如何Windows記事本解釋字符
我maked一個文件中有3個字節E3 81 81
一個16進制軟件。 這些字節是編碼爲UTF-8的"ぁ"
字符。
我打開記事本,它顯示"ぁ"
我不指定文件的編碼,我剛剛創建的字節。 和記事本正確解釋它。
記事本猜測可能是什麼編碼? 或者是十六進制編輯器將這些字節保存爲特定的編碼。
我想知道Windows如何解釋字符,例如:如何Windows記事本解釋字符
我maked一個文件中有3個字節E3 81 81
一個16進制軟件。 這些字節是編碼爲UTF-8的"ぁ"
字符。
我打開記事本,它顯示"ぁ"
我不指定文件的編碼,我剛剛創建的字節。 和記事本正確解釋它。
記事本猜測可能是什麼編碼? 或者是十六進制編輯器將這些字節保存爲特定的編碼。
如果文件只包含這三個字節,那麼根本沒有關於使用哪種編碼的信息。
一個字節只是一個字節,並且沒有辦法在其中包含任何編碼信息。此外,十六進制編輯器甚至不知道您打算將文本解碼爲文本。
記事本通常使用ANSI編碼,所以如果它將文件讀取爲UTF-8,那麼它必須根據文件中的數據猜測編碼。
如果您將文件另存爲UTF-8,則記事本會將BOM(字節順序標記)EF BB BF
置於文件的開頭。
記事本做出了有根據的猜測。我不知道細節,但加載前幾千字節並嘗試將它們從UTF-8轉換爲非常簡單,所以它可能會做類似的事情。
...有時它會錯了...... https://ychittaranjan.wordpress.com/2006/06/20/buggy-notepad/
有一個簡單而有效的方法來檢查文件是否是UTF-8。參見維基百科:http://en.wikipedia.org/w/index.php?title=UTF-8&oldid=581360767#Advantages,第四個重點。記事本可能使用這個。
維基百科聲稱記事本使用了IsTextUnicode函數,該函數檢查是否使用UTF-16編寫了心室文本(它可能在Windows Vista中停止使用,修復了「布什隱藏事實」錯誤):http://en.wikipedia.org/wiki/Bush_hid_the_facts。
布什隱瞞事實似乎並沒有在我這裏工作...贏得8.1。然而提問者的代碼起作用。 – Pacerier
如何識別該文件是在哪個編碼....?
去的文件,並嘗試(另存爲),你可以defaultly看到文件的編碼。(通過其編碼格式被保存)
是的,但我並沒有將文件保存爲UTF- 8或其他什麼,ive創建了字節。謝謝 – nEAnnam
@Guffa,這個答案是不對的。他用HxD創建了這個文件。該文件是**只有3個字節**沒有BOM。然而,記事本沒有用ascii文本打開它,而是用UTF8文本打開它?記事本如何知道這一點? – Pacerier