“亂碼”有兩種情況1.我知道這裡有個字(包括但不限於中文),但我顯示不出來——那就會顯示成方框或者問號,例:這種其實不能稱為亂碼,因為人家畢竟知道這裡有個字,而且真的知道這是哪個字,只不過找不到合適的字型,顯示不出來而已。2.我根本不知道這是個什麼字,有幾種情況:2.1 你沒告訴我這是什麼編碼,我只能猜,不幸猜錯2.2 猜都沒法猜,那我就按我自己的想法顯示了,對不對無所謂2.3 你告訴我的編碼和實際不符,那錯了也沒辦法例:這是一個法華人發給俄羅斯人的包裹(據說是哈利波特的書),地址是俄羅斯人用電子郵件發的,法華人的電腦不知道郵件是什麼編碼,就自己瞎猜了一個,還猜錯了,於是就顯示成亂碼,然後這個法華人原封不動地把亂碼抄在信封上了。(後來戰鬥民族郵遞員果斷辨認出這是亂碼,並且自己把它“翻譯”成正確的地址了,併成功投遞)屯屯屯燙燙燙也是這個原理,記憶體裡本來只存了0xCD或0xCC(預設初始化成這些)這些十六進位制數,也沒說是什麼編碼的(存的根本不是字串哪有編碼這概念),但非要把它當做字串顯示,於是就只能瞎蒙一個(GBK),就顯示成屯和燙了。綜上,對方收到的郵件,這兩種可能都存在,比較舊的郵件系統可能會犯第二個錯誤,而比較新的郵件系統(用了Unicode)只會有第一個問題(除非你的郵件客戶端發出去的時候就把編碼標錯了)。
“亂碼”有兩種情況1.我知道這裡有個字(包括但不限於中文),但我顯示不出來——那就會顯示成方框或者問號,例:這種其實不能稱為亂碼,因為人家畢竟知道這裡有個字,而且真的知道這是哪個字,只不過找不到合適的字型,顯示不出來而已。2.我根本不知道這是個什麼字,有幾種情況:2.1 你沒告訴我這是什麼編碼,我只能猜,不幸猜錯2.2 猜都沒法猜,那我就按我自己的想法顯示了,對不對無所謂2.3 你告訴我的編碼和實際不符,那錯了也沒辦法例:這是一個法華人發給俄羅斯人的包裹(據說是哈利波特的書),地址是俄羅斯人用電子郵件發的,法華人的電腦不知道郵件是什麼編碼,就自己瞎猜了一個,還猜錯了,於是就顯示成亂碼,然後這個法華人原封不動地把亂碼抄在信封上了。(後來戰鬥民族郵遞員果斷辨認出這是亂碼,並且自己把它“翻譯”成正確的地址了,併成功投遞)屯屯屯燙燙燙也是這個原理,記憶體裡本來只存了0xCD或0xCC(預設初始化成這些)這些十六進位制數,也沒說是什麼編碼的(存的根本不是字串哪有編碼這概念),但非要把它當做字串顯示,於是就只能瞎蒙一個(GBK),就顯示成屯和燙了。綜上,對方收到的郵件,這兩種可能都存在,比較舊的郵件系統可能會犯第二個錯誤,而比較新的郵件系統(用了Unicode)只會有第一個問題(除非你的郵件客戶端發出去的時候就把編碼標錯了)。