什麼是Unicode(統一碼/標準萬國碼)及它的好處
 

現在台灣最通行的編碼方式叫「大五碼 (Big5)」,大陸最通行的編碼是「國標碼 (GB)」。日本、韓國也使用漢字,他們有各自不同的編碼。世界上有許許多多國家,有許許多多編碼方式,彼此互不協調,造成亂碼,嚴重地妨礙了人們藉由電腦相互溝通。有鑒於此,美國有個名叫「Unicode」的機構提出了統一世界各國文字編碼的方法,這個新的編碼方式就叫「Unicode」,中文譯名是「萬國碼」、「統一碼」等等。使用「Unicode」最大的好處是消除亂碼。它將世界各國的文字井然有序地賦予編號,彼此不相重疊,所以你能看到一份文件上,阿拉伯文和日本假名同時出現的奇景。再加上 Unicode 收字量頗巨,約收錄70000個漢字,台灣現流行的 Big5 收字量也不過 13000 個漢字,相形之下 Big5 字缺的利害。有了 Unicode 後,從此「王建?」不再是「王建火宣」,「游錫?」也不用再打成「游錫方方土」了。 

在都使用Unicode編碼的電腦上,文字的呈現不會造成亂碼。上述的「你好」二字,走到了大陸、日本、沙烏地阿拉伯,都還是「你好」二字,不會改變。而您能在此網頁一睹「王建?」、「游錫?」兩位先生的真實姓名,不陷於Big5缺字的窘境,也是拜 Unicode技術所賜。 

Unicode是如此好用,又是世界趨勢,日後自然大行其道。只是他推出的時間較晚,世界上有無數的電腦資料和程式都是舊形式,一時半刻也改變不了,所以大多數的電腦系統 (Windows Base)都是維持 Unicode 和當地區域編碼共存的作業方式。例如筆者現在使用的 Windows XP作業系統,系統內部使用的正是 Unicode 。因為它是繁體中文版,所以 Big5 碼是它的第二官方語言。若是我交代了 XP 作業系統處理一些文字資料,而這些文字編碼不是 Unicode,又未載明是何種編碼,那麼 XP 作業系統會把它當作是 Big5 碼來看待。Windows 作業系統會拿出一份 Big5 和 Unicode 的對照表(稱為 Codepage,編號 950),逐字將Big5編碼轉變為Unicode編碼,以利系統內部作業。
現在 Windows 上絕大部分的電腦程式並不支援 Unicode,當這些程式從事一些涉及到文字的運作時 (例如編輯文字、剪貼簿動作、以及開檔檔名路徑的指派等) ,Windows 作業系統就會自動地根據上述的 Codepage來將 Unicode 轉換成 Big5 碼。對於漢字而言,這種轉換有時是順利的,有時是失敗的。為了說明這點我們來作以下實驗:如果您現在使用的是繁體版 Windows,把網頁上的「漢字」二字 Copy下來,再貼到不支援Unicode的程式裡,你會看到「漢字」兩字顯示無誤,故 Unicode → Big5 轉換成功。接下來將「?字」二字貼上去,卻發現到「?字」變成「?字」,故 Unicode → Big5 轉換~~失敗。 

你的程式「不知有?」,實在不用歸咎於設計師。追其病因,乃是 Big5碼收字太少了。當Windows依表將 Unicode對應到 Big5碼時,發現 Big5碼沒有這個「?」字,無法轉換。所以只好丟一個問號給你自己去想辦法解決。同樣問題出現在所有簡體字上。由於 Big5 碼沒收錄簡體字,所有簡體 Unicode 漢字轉成 Big5 後最後都會變成問號。例如:「?」→「國」,依舊是一個問號。Windows 並不會熱心地將「?」對應到「國」。所以究竟是「一?兩字」,還是「一邊一國」?Microsoft 說這個問題應該由兩岸人民自己和平解決,他們不插手干預。 

此外,若是檔案的檔名包含簡體字或其他Big5碼沒有收錄的漢字時 (例如:"?字.txt"),就會產生問題。您可以用鼠標點它兩下來開啟,這是因為 Windows 內附的記事本支援 Unicode檔名。若是您用 WinRar 來壓縮它的話,立刻會發生程式錯誤的訊息,同樣地是因為 Unicode → Big5轉換失敗。 

這個狀況在中文簡體版的Windows上就樂觀多了。簡體版的 Windows 第二官方語言是GBK。它的收字量涵括了 GB 2312、GB 12345、日韓漢字、Big5碼。所以每一個Big5碼能呈現的字,在GBK中都能找到對應的漢字。所以就算是簡體版的Windows,它們能顯示的繁體字還是比 Big5 碼版的 Windows多。

 

up


 

為什麼email會產生亂碼這種現象?
 
這不是因為讀信者的設定不對,而是發信者沒有在郵件程式中做正確的設定。以Outlook express為例,預設的郵件標題格式只能接受七位元的字元,這樣的設定對英文語系來說是沒有問題的; 但是中文字卻是由八位元的位元組所組成,因此如果不把標題設定成「可以接受八位元字元」的話,中文標題就沒辦法正確的傳送,以致於有些使用者看到的就是一堆標題亂碼。

 

郵件內文的錯誤
 
發信者把他們發出的信件用一種稱為QP的編碼方式編碼過。這種編碼方式並不適用在中文信的環境,因此使得信件內容完全無法辨識。使用outlook express的使用者,不會看到這兩種亂碼。 這並不意味著 outlook express就是好的郵件程式,只是它會自動判別這兩種情形,自動做解開編碼的動作,所以使用者不會知道自己的設定是錯的。

up


 

我們常會碰到發生亂碼的組合:
 ★在中文繁體Windows 作業系統下,字碼顯示及字碼交換問題:
  
 1. 中文簡體GB字碼(SD)無法直接顯示或複製於繁體Big 5軟體內,其結果是: 它會呈現一大堆看不懂的亂碼。
 2. 中文簡體GB字碼(SD)複製到Unicode軟體時,簡體GB字碼會呈現亂碼。
 3. 中文簡體Unicode字碼(SU)無法直接顯示在不支援Unicode字碼作業系統下。
 4. 中文簡體Unicode(SU)複製到非Unicode軟體時,其中文Unicode字碼為簡體 Unicode(SU)字碼會呈現?(問號)。
  
 ★在中文簡體Windows 作業系統下,字碼顯示及字碼交換問題:
  
 1. 中文繁體Big 5 字碼(TD)無法直接顯示或複製於簡體GB軟體內,其結果是:它會呈現一大堆看不懂的亂碼。
 2. 中文軟體Big 5字碼(TD)複製到Unicode軟體時,繁體Big 5字碼會呈現亂碼。
 3. 中文繁體Unicode字碼(TU)無法直接顯示在不支援Unicode字碼作業系統下。
 4. 中文繁體Unicode(TU)複製到非Unicode軟體時,其中文Unicode字碼為繁體 Unicode(TU)字碼會呈現?(問號)。
  

up

簡繁體的差別 (以outlook express為例)
簡體正常顯示
簡體亂碼顯示

使用utf- 8來撰寫簡體信件,收件者可以正常的顯示信件標頭及內文
(使用的作業環境是繁體中文,outlook express環境是utf-8)

使用繁體中文來撰寫簡體信件,收件者會顯示亂碼標頭 (使用的作業環境是繁體中文,outlook express環境是繁體中文)

 


 

設定 Outlook 2003
 步驟1. 於Outlook 2003主畫面的下拉式選單中點選「工具」中的「選項」。
 步驟2. 這時會出現一個視窗,裡頭有很多活頁標籤。
 
  
 

步驟3. 請點選 「郵件格式」這個活頁標籤,在「使用這個郵件格式撰寫」中選擇【HTML】。 
               藍色部份不用打勾勾(若你的預設值是有打勾的,也請你拿掉)否則你傳送出去的字會套用到Word撰寫格式,會造成轉寄或 
               回覆的信件內容無法修改的情況、或是字 型固定在原本格式而無法選取修改。

 步驟4. 另外點選在下方的「國際選項」,編碼選項中,想使用的外寄郵件編碼方式中,選擇【Unicode UTF-8】。如步驟5所示。
 
 

up


 

設定Outlook 2000
 打開你的Outlook 2000在主畫面的下拉式選單中點選「工具」中的「選項」。
 步驟1. 這時會出現一個視窗,裡頭有很多活頁標籤,選擇「郵件格式」。
 步驟2. 點選「國際選項(I)」。
 步驟3. 在「外寄郵件使用這種編碼方式」中選擇Unicode (UTF-8)「未標示的收到郵件使用這種編碼方式」也選擇Unicode (UTF-8)
 步驟4. 點選「設定(E)」。
 步驟5. 請把標題容許8位元(W)打勾勾。
 

up  


 

設定Outlook Express 6
 步驟1. 於Outlook Express主畫面的下拉式選單中點選「工具」中的「選項」。
 步驟2. 這時會出現一個視窗,裡頭有很多活頁標籤。 選擇「讀取」的頁籤。
 步驟3. 因為我們要針對讀取郵件來做設定,從「字型」來做國際編碼的設定。
 步驟4. 在字型設定中選擇Unicode。
 步驟5. 在編碼中要選擇UTF-8而不是UTF-7。
 
  
 編寫繁體或簡體中文郵件時,建議使用 UTF-8 編碼,由於 Big-5 編碼只適用繁體中文,所以除非完全只編寫繁體中文與英文,否則建議使用 UTF-8 編碼 (設定方式)。 撰寫/閱讀郵件時,可在 Outlook Express 的 「格式」「編碼」 中異動指定的語系編碼方式。
  
 步驟6. 再來我們選擇「傳送」的頁籤,對於郵件傳送的格式有分2種,一種是HTML,一種是純文字。
 步驟7. 點選HTML設定。
 步驟8. 在MIME郵件格式中 「文字編碼方式」選擇「無」或「Base64」,且勾選「標題允許 8 位元的字元」。
 步驟9. 點選純文字設定。
 步驟10. 郵件格式選擇Uniocode。
 
  
 步驟11. 點選「國別設定」。
 步驟12. 預設編碼選擇Unicode (UTF-8),「回傳時標題永遠使用英文」不要打勾
 

up