為何我收到的信會是亂碼?

案例一:收件端郵件軟體使用錯誤字元集解碼

錯誤:原文字以 BIG5 編碼,再以 UTF-8 解碼,可能看到情形。
正確:原文字以 BIG5 編碼,再以 BIG5 解碼。
錯誤:原文字以 UTF-8 編碼,再以 BIG5 解碼,可能看到情形。
正確:原文字以 UTF-8 編碼,再以 UTF-8 解碼。

案例二:寄件端郵件軟體提供錯誤字元集資訊

使用 GB2312 解碼
使用 GB18030解碼

案例補充說明

下面範例包含了「正體字」、「簡體字」,並使用了 GB2312 字元集,但信件內的部份字元卻不在 GB2312 字元集範圍內,如:

华 堃 編

上述範例中編輯者指定 GB2312 進行編碼,將造成閱讀者解碼時的錯誤。如需要同時使用「正體字」與「簡體字」,編輯時可以改用範圍較大的 UTF-8。

常見問題發生原因

目前多數輸入法 (微軟新注音輸入法、新酷音輸入法) 支援輸入「正體字」與「簡體字」,使用者在選字時往往因為字體較小或字型差異,不自覺選了相似的字,如「」、「」,其中前者為「正體字」;後者則為「簡體字」。此時同時混合使用「正體字」與「簡體字」,但卻使用了字元範圍較小的 GB2312 字元集,將會造成部份「正體字」編碼與解碼的錯誤。(另一例和語系無關但容易選錯字,則是國字的「一」與注音的「ㄧ」)


建議改善方式:

  1. 如果是選錯字的問題,建議調整字體大小或改用容易辨讀的字型,以避免無法正確辨別差異,選擇了相似的字。
  2. 如果僅需要輸入 Big5 字元集,而無使用「簡體字」的需求,此時可以限定輸入法只提供 Big5 候選字,避免誤輸入。
  3. 如有必要同時使用「正體字」、「簡體字」或是其他字元 (如日文、韓文等),可依據字元內容使用範圍較大的 UTF-8 或其他字元集。

相關補充資料

# iconv -f big5/gbk -t utf-8 輸入檔案
# piconv -f big5/gbk -t utf-8 輸入檔案
# iconv -l
# piconv -l

相關網站