為什麼我收到的信是亂碼?

 

★★★  亂碼的成因  ★★★

Internet 上的郵件傳送造成內容變亂碼的原因,可分為兩類,一是:因「語系錯亂」所造成的亂碼,二是:郵件傳送時「編碼錯誤」所造成的亂碼。

一、語系錯亂

由於郵件的「送」、「接」雙方,使用語系不同,「接」方收到的會是亂碼信。

解決「語系錯亂」所造成的亂碼很容易,只要切回郵件所屬的語系,就可以正確顯示出來,但是你的電腦上也要有該語系的字型才行。

比方說,我的電腦是繁體系統(或是英文系統但有繁體字型預設)要寄一封繁體信給你,但你的電腦是簡體系統(或是英文系統但有簡體字型預設),接信時內容就會變成亂碼。這是因語系不同而產生的亂碼,解決這亂碼問題很簡單,只要在Internet ExplorerOutlook Express (如你是用Outlook Expres接送信件)的「檢視」>>「編碼」,選成繁體中文即可。( View  >>  Encoding  >>  Chinese Traditional

但是,如果你的電腦上並沒有安裝Internet ExplorerOutlook Express的繁體字型支援,看到的還是亂碼,因為你根本沒有繁體字,就不能顯示。

你可以利用 Windows Update 來下載安裝繁體中文、簡體中文、韓文....等等的一些東方國家語系的字型支援。

 

因為語系設定不對所造成的亂碼的型態,會長得像下面這樣:

??腞地逗??燿燿鸅鸅燿 ??燿燿鸅鸅燿燿?

或:

?°?F¥[2`±z1i-O?H?A|i?IAOao?FN!Aoo?U?A?H3]-p!i|p|oI¥I±zao-O?H?A|i?IAO!j¥H’AAy±z?e?KI¥I±zao-O?H?A|i?IAO!I

 

 

二、郵件傳送時「編碼錯誤」所造成的亂碼

Internet 上有些郵件系統只支援 7Bit 的字元傳輸, 而漢字的內碼是 8Bit 的,當在電子郵件中發送中文時,這些只支援 7Bit 字元的郵件系統,就要先將漢字8Bit 的內碼來按照一定的規則另行編碼,以便可以完好地通過只支持 7Bit 字元的郵件系統來輸送。然後接收郵件的對方系統,偵測到這是「另行編碼」,會自動轉回漢字8Bit 的內碼,接信人就會清楚讀出中文字。

以上是中文郵件的正常傳送模式。

不幸的是,有時傳輸過程中發生錯誤,致使接收系統不能轉回漢字內碼,因而造成的亂碼。

或:傳輸時沒把漢字「另行編碼」,也使接收後變成亂碼。

基本上,因為錯誤的編碼,郵件內容已經被編碼給毀了,並不太容易還原,最省事的方法,就是叫對方重寄,並提醒他的傳送郵件的語系設定。

因為編碼錯誤所造成的亂碼型態,長得像下面這樣:

=A8=C3=A7@=A6=B9=B5=DF=AA=BA=A7=DC=A5

=CD=AF=C0=C3=C4=AA=AB=B7P=A8=FC=A9=CA=B8=D5

或:

惠倫兄:

 

廣基兄真厲害,我

 

 

如何避免寄出亂碼信

明白了亂碼的成因,我們可以知道:亂碼信跟收信的人並沒有多大的關係,如果,要說有錯的話,應該是在「寄信的人」,既然是在寄信的人,我們就應該多留意一下自己的郵件語系設定,避免寄出去的信都變成亂碼了,造成收信那一方的困擾

注意語系設定:

假如我們要在郵件軟體(如:hotmail, yahoo mail…)上書寫一封繁體中文信,首先要留意軟體的預設語系是不是「繁體中文」或Tradition Chinese(可由「檢視」>>「編碼」查知),如預設正確,那麼發信時,郵件系統會將中文字「另行編碼」來輸送。接收郵件的對方系統,便會將這「另行編碼」轉回中文字,亂碼就不會產生。

反之,如果以「西歐語系」預設(Western European)來發一封繁體中文信,郵件系統可能會偵測不到這是8Bit 的漢字內碼,不「另行編碼」而以7Bit 的字元傳輸,那麼接收郵件時就會產生不可還原的亂碼。

各位可以上述情形來測試,把封件回寄自己,就可知亂碼是如何產生!

至於語系預設一切正確,而傳輸過程中發生錯誤所產生的亂碼,己不是我們寄信人能控制之內。     

                                         2007.2.10撰於德州達拉斯城