一、什麼是字符集?什麼是編碼?
字符(Charcter)是文字與符號的總稱,包括文字、圖形符號、數學符號等。
一組抽象字符的集合就是字符集(Charset)。字符集常常和一種具體的語言文字對應起來,該文字中的所有字符或者大部分常用字符就構成了該文字的字符集,比如英文字符集。一組有共同特征的字符也可以組成字符集,比如繁體漢字字符集、日文漢字字符集。字符集的子集也是字符集。
計算機要處理各種字符,就需要將字符和二進制內碼對應起來,這種對應關系就是字符編碼(Encoding)。制定編碼首先要確定字符集,並將字符集內的字符排序,然後和二進制數字對應起來。根據字符集內字符的多少,會確定用幾個字節來編碼。每種編碼都限定了一個明確的字符集合,叫做被編碼過的字符集(Coded Character Set),這是字符集的另外一個含義。通常所說的字符集大多是這個含義。
因為制定編碼的同時往往也制定了字符集,所以經常把字符集和編碼混為一談,具體區分細節不用細究。
二、通用字元集(Universal Character Set,UCS)
通用字元集(Universal Character Set,UCS)是由ISO制定的ISO10646(或稱ISO/IEC 10646)標准所定義的字元編碼方式,采用4字節編碼。又稱Universal Multiple-Octet Coded Character Set,大陸譯為通用多八位編碼字符集,臺灣譯為廣用多八位元編碼字元集。
表示一個UCS或Unicode值的十六進位數通常在前面加上「U+」,例如「U+0041」代表字元「A」。
通用字元集是所有包括了其他字元集。它保證了與其他字元集的雙向相容,即,如果你將任何文本字元串翻譯到UCS格式,然後再翻譯回原編碼,你不會丟失任何信息。
三、unicode
Unicode(統一碼、萬國碼、單一碼)是一種在計算機上使用的字符編碼。它為每種語言中的每個字符設定了統一並且唯一的二進制編碼,以滿足跨語言、跨平台進行文本轉換、處理的要求。1990年開始研發,1994年正式公布。隨著計算機工作能力的增強,Unicode也在面世以來的十多年裡得到普及。
2006年6月的最新版本的 Unicode 是 2005年3月31日推出的Unicode 4.1.0 。另外,5.0 Beta已於2005年12月12日推出,以供各會員評價。
Unicode 的編碼和實現
大概來說,Unicode 編碼系統可分為編碼方式和實現方式兩個層次。
1.編碼方式
Unicode 的編碼方式與 ISO 10646 的通用字元集(亦稱[通用字符集])(Universal Character Set,UCS)概念相對應,目前的用於實用的 Unicode 版本對應於 UCS-2,使用16位的編碼空間。也就是每個字符占用2個字節。
2.實現方式
Unicode 的實現方式不同於編碼方式。一個字符的 Unicode 編碼是確定的。但是在實際傳輸過程中,由於不同系統平台的設計不一定一致,以及出於節省空間的目的,對 Unicode 編碼的實現方式有所不同。Unicode 的實現方式稱為Unicode轉換格式(Unicode/UCS Transformation Format,簡稱為 UTF)。
Unicode 的實現方式還包括 UTF-7、Punycode、CESU-8、SCSU、UTF-32等,這些實現方式有些僅在一定的國家和地區使用,有些則屬於未來的規劃方式。目前通用的實現方式是 UTF-16小尾序(BOM)、UTF-16大尾序(BOM)和 UTF-8。
UCS 和 Unicode 只是分配整數給字符的編碼表,UTF-8、UTF-16、CESU-8等則指定了如何存儲!