Unicode 是為了因應多語系互通與共存而產生的。好玩的是,我看過很多人把它誤寫成 Unitcode,這是對於這個通用碼的不了解。它其實是 Universal Code 的縮寫,所以我們說它叫做「萬國碼」...
Unicode 是為了因應多語系互通與共存而產生的。好玩的是,我看過很多人把它誤寫成 Unitcode,這是對於這個通用碼的不了解。它其實是 Universal Code 的縮寫,所以我們說它叫做「萬國碼」。
在純西歐語系的環境下,最常用的電腦編碼標準有三種:
- ASCII - American Standard Code for Information Interchange (美國資訊交換標準碼) 是最早出現在電腦上的編碼方式之一,它使用七位元編碼方式,定義了標準英文字元、數字、符號和特殊字元 (例如 Bell、Tab、CR、LF、Esc) 等等。
- ANSI - 由 ANSI (American National Standard Institute, 美國國際標準協會) 所制定的編碼標準,使用了八位元編碼方式,將 0~127 字元分配 ASCII 碼,將 128~255 字元分配給其它的西歐字元。
-
ISO-8859 - 由 ISO (International Stander Organization 國際標準局) 所製定的編碼標準,將特定的語系納入,例如:
標準 名稱 對應語言 ISO 8859-1 Latin alphabet No. 1 西歐語系 ISO 8859-2 Latin alphabet No. 2 中歐、東歐語系 ISO 8859-3 Latin alphabet No. 3 南歐或 Maltese、Esperanto ISO 8859-4 Latin alphabet No. 4 北歐語系 ISO 8859-5 Latin/Cyrillic alphabet 斯洛伐克語系 ISO 8859-6 Latin/Arabic alphabet 阿拉伯語系 ISO 8859-7 Latin/Greek alphabet 希臘語系 ISO 8859-8 Latin/Hebrew alphabet 猶太語系 ISO 8859-9 Latin alphabet No. 5 土耳其語系 ISO 8859-10 Latin alphabet No. 6 北歐斯堪地納維亞語系 ISO 8859-11 Latin/Thai alphabet 泰國語系 (Part 12 未定義) ISO 8859-13 Latin alphabet No. 7 波羅的海語系 ISO 8859-14 Latin alphabet No. 8 凱爾特語系 ISO 8859-15 Latin alphabet No. 9 歐盟語系 ISO 8859-16 Latin alphabet No. 10 東南歐語系
上面這些編碼方式都是使用八位元編碼。所以不要以為 ISO 8859 系列定義了那麼多語言,就以為它必定是雙位元以上的編碼,事實上它們都是各自定義的。詳細的列表可以參考「The ISO 8859 Alphabet Soup」這一篇文章。
如果使用上述的編碼方式,非但無法用來顯示東方語系,也無法讓不同的語言顯示在同一頁上面。為了因應世界潮流,Unicode 便順勢而生了。
Unicode 是將所有的語言整合在同一個編碼頁裡面,使得 (幾乎) 所有語言的任何一個文字都有它單一的定址編碼,而不像 ISO 8859 編碼,有多種語言佔用同一個字元碼。
不過 Unicode 本身也有不同的標準:
-
Unicode UTF-16 編碼:使用 16 位元整數來定址字元。在 .Net Framework 中可以使用 UnicodeEncoding 類別進行轉換。
-
Unicode UTF-32 編碼:使用 32 位元整數來定址字元。在 .Net Framework 中可以使用 Unicode32Encoding 類別進行轉換。
-
Unicode UTF-8 編碼:使用 8 位元、16 位元和 24 位元、甚至 48 位元整數來定址字元。0 ~ 127 使用 8 位元編碼,存放標準 ASCII 字元,128 ~ 2047 使用 16 位元編碼,存放拉丁、希臘和阿拉伯等語系,2048 ~ 65535 使用 24 位元編碼,存放中文、日文、韓文等語系。在 .Net Framework 中可以使用 Unicode8Encoding 類別進行轉換。
在 .Net Framework 內部都是使用 UTF-16 編碼。
在 Unicode 出現之前,我們自行推出了 Big5 大五碼的中文編碼標準。但自從 Unicode 正式推出之後,電腦間與國際間的資訊交換幾乎已經完全採用 Unicode 了。有關國內及國際的中文碼發展沿革,可以參考全字庫「中文碼介紹」這篇文章。
延伸閱讀: