不少時候咱們在打開utf-8的時候會有 � 等不少像問號的編碼出現
這時候咱們打開這個文件的二進制就會發現 問號對應的十六進制編碼就是
efbf bdef bfbd。這個編碼究竟是什麼呢?爲何會有這種編碼呢。
這就要從各類編碼格式的轉換提及。並且大部分出現這種問題的就是用gbk編碼的文件
用utf-8編碼格式打開。當編碼格式中出現utf-8沒法解析的字節,那麼這個字節就會被
替換成 efbf bdef bfbd 這時咱們會發現文件大小也發生了改變,由於未知字節所有
變成三個未知字節。
而這時候再將其轉換爲gbk
錕 (0xEFBF),斤(0xBDEF),拷(0xBFBD)
這就是 錕斤拷
那麼我是在何時發現這個問題:
python 的 print 咱們通常都會把python代碼設置成全局utf-8編碼。
這時候若是你收到的是一個gbk的編碼,可是直接打出來。就會發現出現不少問號。
這個時候直接複製粘貼再看二進制就不是真正接受的數據。由於print自動將收到的
數據進行了utf-8解碼。這樣沒法解析的編碼就變成efbf bdef bfbd。
因此在遇到亂碼的時候就須要在數據的原始接受處,及第一次轉碼發生以前將數據用二進制寫入文件留存python