Unicode,統一碼,是一種在電腦上使用的字元編碼。它為每種語言的每個字元設定了統一併唯一的二進位編碼,以滿足跨語言、跨平台進行文本轉換、處理的要求。於1990年開始研發。94年正常公布。
Unicode 實際上包含當今在電腦中廣泛使用的所有字元。它能夠編製 110 多萬個碼位。該標準包括針對 8 位、16 位和 32 位編碼形式所做的規定。16 位編碼為其預設編碼,超過百萬的碼位跨 17 個“平面”分布,每個平面可編製 65,000 多個字元。平面 0(或通常稱為“基本多文種平面”(BMP))中的字元用於表示世界上的大部分書面文字、出版中使用的字元、數學和技術符號、幾何形狀、基本標誌(包括所有 100 級 Zapf Dingbat)以及標點符號。除支援流行語言字元以及剛才所提的符號和形狀外,Unicode 還包括其他字元,如普及性低一些的中文、日語和韓語 (CJK) 表意字元、阿拉伯語表示形式以及音樂符號。上述許多字元都使用名為“代理字組”的擴充機制在原始平面之外進行映射。Unicode 3.2 已為 95,000 多個碼位分配了字元;其餘碼位留待將來使用。Unicode 還為應用程式提供了有 131,000 多個位置的專用區,供使用者定義字元使用(通常是代表人名或地名的稀有表意字元)。
Unicode編碼包括:
- UTF-8:為滿足面向位元組和基於 ASCII 系統的要求,Unicode 標準定義了 UTF-8。採用 UTF-8 的每個字元最多表示為 4 個位元組,其中,第一個位元組指示多位元組序列中的位元組數,從而允許更好地解析字串。UTF-8 通常用在使用 網際網路通訊協定 (IP)的傳輸中以及 Web 內容中。
- UTF-16:這是 Unicode 標準的 16 位編碼形式,在該形式中,除了由代理字組編碼的字元(由一個 16 位值對組成)外,其他字元均被分配一個唯一的 16 位值。Unicode 16 位編碼形式與國際標準組織/國際電子電機委員會 (ISO/IEC) UTF-16 傳輸格式相同。在 UTF-16 中,映射值不高於 65,535 的所有字元被編碼為一個 16 位值;映射值高於 65,535 的字元被編碼為 16 位值對。(有關代理字組的詳細資料,請參閱本章後面的“代理字組”。)UTF-16 little-endian 是 Microsoft(以及 Windows 作業系統中)的編碼通訊協定。
- UTF-32:每個字元均被表示為一個 32 位的整數。
UTF-8是目前比較常用的編碼方式,大部分情況UTF-8已經是夠用的。由於 UTF-8 常用在 Web 內容中,因此它有助於理解如何將 Unicode 碼位映射到此編碼中,省去了使用 MBCS 字元的麻煩。表 1 顯示了 Unicode 碼位和 UTF-8 編碼字元之間的關係。UTF-8 編碼字元中位元組鏈的起始位元組表明使用了多少個位元組編碼此字元。所有後續位元組均以 "10" 開頭,連續的 x 指示給定範圍內編碼的二進位表示。
Unicode碼位和UTF-8編碼字元之間的關係: