UCS

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

通用字元集又稱 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，但不含喬治亞拉里符號、九個 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 的擴充。

* 由 Xerox、Apple 等軟體製造商於 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 6429 和 ISO/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 都只是編碼標準，並不處理字形風格標準之問題。字形的風格可以透過改變顯示字體來解決。

## 參考文獻

## 外部連結

* JTC1/SC2/WG2 （頁面存檔備份，存於網際網路檔案館）
* ISO/IEC 10646 標準下載 （頁面存檔備份，存於網際網路檔案館）
* Relationship to ISO/IEC 10646 （頁面存檔備份，存於網際網路檔案館）
* 對字元編碼與 Unicode、ISO 10646、UCS、UTF8、UTF16、GBK、GB2312 的理解 （頁面存檔備份，存於網際網路檔案館）