通用字元集

通用字元集(英語:Universal Character Set, UCS)是由ISO制定的ISO 10646(或稱ISO/IEC 10646)標準所定義的標準字元集。

Universal Coded Character Set (UCS)」的各地常用譯名
中國大陸通用多八位編碼字符集(UCS)
臺灣廣用多八位元組編碼字元集(UCS)

通用字元集又稱Universal Multiple-Octet Coded Character Set,中國大陸譯為通用多八位編碼字符集,台灣譯為廣用多八位元組編碼字元集

概要

通用字元集包括了其他所有字元集。它保證了與其他字元集的雙向相容,即,如果你將任何文字字串翻譯到UCS格式,然後再翻譯回原編碼,你不會遺失任何資訊。

UCS包含了已知文字的所有字元。除了拉丁字母、希臘字母、西里爾字母、方體亞拉姆字母、阿拉伯字母、亞美尼亞字母、格魯吉亞字母,還包括漢字、假名、諺文這樣的方塊文字,UCS還包括大量的圖形、印刷、數學、科學符號。

ISO/IEC 10646定義了一個31位元的字元集。

UCS不僅給每個字元分配一個代碼,而且賦予了一個正式的名字。表示一個UCS或Unicode值的十六進制數通常在前面加上「U+」,例如「U+0041」代表字元「A」。

版本

  • ISO/IEC 10646-1:1993 = Unicode 1.1 = GB 13000.1-93《資訊科技 通用多八位編碼字元集(UCS)第一部分:體系結構與基本多文種平面》
  • ISO/IEC 10646-1:1993 第五至第七修訂版 = Unicode 2.0
  • ISO/IEC 10646-1:1993 plus Amendments 5 to 7 = Unicode 2.1 excluding Euro Sign and Object Replacement Character, which are included in Amendment 18
  • ISO/IEC 10646-1:2000 = Unicode 3.0
  • ISO/IEC 10646-1:2000 和 ISO/IEC 10646-2:2001 = Unicode 3.1
  • ISO/IEC 10646-1:2000 第一修訂版和 ISO/IEC 10646-2:2001 = Unicode 3.2
  • ISO/IEC 10646:2003 = Unicode 4.0 = GB 13000-2010
  • ISO/IEC 10646:2003 第一修訂版 = Unicode 4.1
  • ISO/IEC 10646:2003 第一、第二修訂版 = Unicode 5.0 excluding Devanagari Letters GGA, JJA, DDDA and BBA, which are included in Amendment 3
  • ISO/IEC 10646:2003 第一至第四修訂版 = Unicode 5.1
  • ISO/IEC 10646:2003 第一至第六修訂版 = Unicode 5.2
  • ISO/IEC 10646:2003 第一至第八修訂版 = ISO/IEC 10646:2011 = Unicode 6.0 包括 Indian Rupee Sign
  • ISO/IEC 10646:2012 = Unicode 6.1
  • ISO/IEC 10646:2012 = Unicode 6.2,但不含 土耳其里拉符號(ISO 直到第一修訂版才加入)
  • ISO/IEC 10646:2012 = Unicode 6.3,但不含 土耳其里拉符號,也不含五個雙向控制字元 (Arabic Letter Mark, Left-To-Right Isolate, Right-To-Left Isolate, First Strong Isolate, Pop Directional Isolate),ISO 直到第二修訂版)
  • ISO/IEC 10646:2012 第一、第二修訂版 = Unicode 7.0 ,但不含俄羅斯盧布符號
  • ISO/IEC 10646:2014 第一修訂版 = Unicode 8.0[1],但不含格魯吉亞拉里符號、九個CJK統一表一字和41個繪文字
  • ISO/IEC 10646:2014 第一、第二修訂版 = Unicode 9.0 ,但不含Adlam, Newa, 日本的電視用符號、74個繪文字
  • ISO/IEC 10646:2017 = Unicode 10.0,但不含285個變體假名, 3 Zanabazar Square characters和 56個繪文字
  • ISO/IEC 10646:2020 = Unicode 13.0.0

實現級別

並不是所有的系統都需要支援像組合字元這樣的的先進機制。因此ISO 10646指定了如下三種實現級別

  • 級別1:不支援組合字元和諺文字母字元。
  • 級別2:類似於級別1,但在某些文字中,允許一列固定的組合字元,因為如果沒有最起碼的幾個組合字元,UCS就不能完整地表達這些語言。
  • 級別3:支援所有的通用字元集字元,如,可以在任意一個字元上加上一個箭頭或一個鼻音化符號.

Unicode和ISO 10646的關係

歷史上存在兩個獨立的嘗試創立單一字元集的組織,即

  • 國際標準化組織(ISO)於1984年建立的ISO/IEC JTC1/SC2/WG2,其含義是International Organization for Standardization / International Electrotechnical Commission, Joint Technical Committee #1 [Information Technology], Subcommittee #2 [Coded Character Sets], Working Group #2 [Multi-octet codes]). ISO 10646表示這是ISO 646的擴充。
  • XeroxApple等軟件製造商於1988年組成的統一碼聯盟。前者開發的ISO/IEC 10646專案,後者開發的統一碼專案。因此最初制定了不同的標準。

1991年前後,兩個專案的參與者都認識到,世界不需要兩個不相容的字元集。於是,它們開始合併雙方的工作成果,並為創立一個單一編碼表而協同工作。1991年,不包含CJK統一漢字集的Unicode 1.0發佈。隨後,CJK統一漢字集的制定於1993年完成,發佈了ISO 10646-1:1993,即Unicode 1.1。

從Unicode 2.0開始,Unicode採用了與ISO 10646-1相同的字庫和字碼;ISO也承諾,ISO 10646將不會替超出U+10FFFF的UCS-4編碼賦值,以使得兩者保持一致。兩個專案仍都獨立存在,並獨立地公佈各自的標準。但統一碼聯盟和ISO/IEC JTC1/SC2都同意保持兩者標準的碼表相容,並緊密地共同調整任何未來的擴充。在發佈的時候,Unicode一般都會採用有關字碼最常見的字型,但ISO 10646一般都盡可能採用Century字型

Unicode和ISO 10646的異同

統一碼聯盟公佈的Unicode標準包含了ISO/IEC 10646-1實現級別3的基本多文種平面。在兩個標準裡,所有的字元都在相同的位置並且有相同的名字。

ISO/IEC 10646標準,就像ISO/IEC 8859標準一樣,只不過是一個簡單的字元集表。它定義了一些編碼的別名,指定了一些與標準有關的術語,並包括了規範說明,指定了怎樣使用UCS連接其他ISO標準的實現,比如ISO/IEC 6429ISO/IEC 2022。還有一些與ISO緊密相關的,比如ISO/IEC 14651是關於UCS字串排序的。

Unicode標準,額外定義了許多與字元有關的語意符號學。Unicode詳細說明了繪製某些語言(如阿拉伯語)表達形式的演算法,處理雙向文字(比如拉丁文和希伯來文的混合文字)的演算法,排序與字串比較所需的演算法,等等。

由於Unicode這一名字比較好記,因而它使用更為廣泛。不過一般認為,用於列印ISO/IEC 10646-1標準的字型在某些方面的質素,要高於Unicode 2.0。

兩者部分樣例字形有顯著的區別。ISO/IEC 10646-1標準同樣使用四種不同的風格變體來顯示表意文字如中文、日文、韓文(即CJK),但Unicode 2.0的表裏只有中文的變體。甚至存在「Unicode對日本用戶來說不可接受」的不實傳說。

常見誤解

ISO 10646是字形標準

實際上,ISO/IEC 10646處理的是編碼標準,但因為一些資料的混亂,而使人產生誤會。比如一個常見的例子是:香港有研究人員以「ISO10646HK.NET頁面存檔備份,存於互聯網檔案館)」為網址,公佈一些字形製作和拼音釐定的檔案。有些人便因此誤以為ISO/IEC 10646是字形標準。

其實,在漢字文化圈中,各地都有其字形標準,例如香港的標準是《常用字字形表》。而ISO/IEC 10646則是作為一套編碼標準,而不是去處理各地標準的細微差異或釐定標準字形。

ISO 10646比Unicode更支援某地編碼

在Unicode和ISO/IEC 10646兩個標準中,雖然兩者部分樣例字形有顯著的區別,所有的字元都在相同的位置並且有相同的名字。ISO/IEC 10646-1標準使用四種不同的風格來顯示中(繁、簡)、日、韓文字,但Unicode的表中,只用簡體中文風格來顯示,像「Unicode對日本用戶來說不可接受」的誤解,便由此產生。

其實,上文已說明,ISO/IEC 10646或Unicode都只是編碼標準,並不處理字形風格標準之問題。字形的風格可以透過改變顯示字體來解決。

參考文獻

  1. ^ Unicode 8.0.0 - Synchronization. [20 February 2015]. (原始內容存檔於2016-06-28). This version of the Unicode Standard is synchronized with ISO/IEC 10646:2014, plus Amendment 1. Additionally, it includes the accelerated publication of XXXX. 

外部連結