Unicode和老編碼體系的轉化過程中,肯定有一些字,用Unicode是沒法表示的,Unicode官方用了一個佔位符來表示這些文字,這就是:U+FFFD REPLACEMENT CHARACTER
那麼U+FFFD的UTF-8編碼出來,恰好是 '\xef\xbf\xbd'。
如果這個'\xef\xbf\xbd',重複多次,例如 '\xef\xbf\xbd\xef\xbf\xbd',然後放到GBK/CP936/GB2312/GB18030的環境中顯示的話
一個漢字2個位元組,最終的結果就是:錕斤拷
我們上網的時候不用去關心網站採用了什麼編碼格式,但是頁面中不時出現的亂碼還是會讓我們頭疼。在這點上,Firefox的用戶更是深有體會,用Firefox瀏覽網頁看到亂碼的機會要比IE多得多。 亂碼主要與字符編碼系統有關。例如一個網頁中常出現的亂碼「錕斤拷」(百度,Google),它就是新老編碼系統轉換中出現的。網友est專門寫了一篇文章來考證問題來源:
Unicode和老編碼體系的轉化過程中,肯定有一些字,用Unicode是沒法表示的,Unicode官方用了一個佔位符來表示這些文字,這就是:U+FFFD REPLACEMENT CHARACTER。那麼U+FFFD的UTF-8編碼出來,恰好是 '\xef\xbf\xbd'。如果這個'\xef\xbf\xbd',重複多次,例如 '\xef\xbf\xbd\xef\xbf\xbd',然後放到GBK/CP936/GB2312/GB18030的環境中顯示的話就是「錕斤拷――錕(0xEFBF),斤(0xBDEF),拷(0xBFBD)」。