GB-18030

**GB 18030**，全稱《信息技術 中文編碼字符集》，是中華人民共和國國家標準所規定的變長多位元組字元集。其對 GB 2312-1980 完全向下相容，與 GBK 基本向下相容，並支援 Unicode（GB 13000）的所有碼位。

GB 18030 主要有以下特點：

* 採用變長多位元組編碼，每個字可以由 1 個、2 個或 4 個位元組組成。
* 編碼空間龐大，最多可定義 161 萬個字元。
* 完全支援 Unicode，無需動用造字區即可支援中國國內少數民族文字、中日韓和繁體漢字以及 emoji 等字元。

GB 18030 在微軟 Windows 系統中的頁碼為 54936。

GB 18030 不是一個漢字規範，不定義漢字的寫法。中國大陸在此方面的規定由《通用規範漢字表》管理。

## 標準內容

本規格第一版 GB 18030-2000《信息技術　信息交換用漢字編碼字符集　基本集的擴充》」是由中華人民共和國信息產業部電子工業標準化研究所起草，由國家質量技術監督局於 2000 年 3 月 17 日發布和實施。該標準在 GBK 基礎上增加了 CJK 統一漢字擴充 A 的漢字。

本規格第二版為 GB 18030-2005《信息技術　中文編碼字符集》，為國家品質監督檢驗總局和中國國家標準化管理委員會於 2005 年 11 月 8 日發布，2006 年 5 月 1 日實施；是在 GB18030-2000 基礎上增加了 CJK 統一漢字擴充 B 的漢字。GB 18030-2005 共收錄漢字 70,244 個。此標準內的單位元組編碼部分、雙位元組編碼部分，和四位元組編碼部分收錄的少數中日韓統一表意文字擴充 A 區漢字，為強制性標準。其他部分則屬於規模性標準。在中華人民共和國境內所有軟體產品，都需要支援這個同時包含單位元組、雙位元組和四位元組編碼的規格。

GB 18030 的第三版本，且最新版本為 GB 18030-2022《信息技術　中文編碼字符集》，為國家市場監督管理總局和國家標準化管理委員會於 2022 年 7 月 19 日發布、2023 年 8 月 1 日實施。此版本在保留總體結構的基礎上，從條文強制改為全文強制，但增加了「實現的級別」一章，定義了三個實現級別，並要求「任何本檔案使用的產品均應滿足實現級別 1」，與上一版的「部分強制」相比，實際要求「增加四位元組編碼部分的 CJK 統一漢字」的 66 字。另外，該版本完整覆蓋 2013 年發布的《通用規範漢字表》，在資料性附錄 E 中明確了《通用規範漢字表》8105 個漢字的代碼位置，並規定要通過「實現級別 2」來支援。

## Unicode 支援

GB 18030 在其標準中以碼表形式定義了除去代理對外的全部 Unicode 碼位的定義，因此算得上是一種 Unicode 的變換格式（UTF）。由於 GB 18030 基本上是繞開已分配的碼點去指定需要對應的 Unicode，其變換和 UTF-8 相比要複雜得多。在日常實現上，常常會直接使用一個偏移量表。

GB 18030—2005 與 GB 18030—2000、GBK 相比，去除了很多原來對映在 PUA 中的編碼；後來剩餘的 24 個 PUA 碼位也在 Unicode 4.1 中加上。

在 GB 18030—2022 中，剩餘的 24 個 PUA 碼位已經被去除或更改對應，所有有意義字元都已經對映到正式的 Unicode 碼位上。

## 位元組結構

GB 18030 包含三種長度的編碼：單位元組的 ASCII、雙位元組的 GBK（略帶擴充）、以及用於填補所有 Unicode 碼位的四位元組 UTF 區段。GBK 雙位元組部分通過查表定義，而四位元組部分則根據之前兩個部分沒有提到的通用字元集碼位順序填補。由於和 GBK 相容，GB 18030 在搜尋 ASCII 字元時也需要使用特別代碼進行判斷。

一、二位元組區段基本就是 GBK 編碼，另外加上了專門的歐元字元、豎排版本的標點符號，以及造字區對 Unicode 造字區的對應。四位元組區段可以視作兩段形似 GBK 二位元組區段結構的部分，每段的第一位元組可以為 0x81 到 0xFE，第二位元組為 0x30 到 0x39。由於結構類似，能夠安全於 GBK 的字串搜尋程式對於 GB 18030 來說也基本安全（正如基於位元組的搜尋程式對於 EUC、UTF-8 也基本安全一般。）

四位元組區段總共可以表達 1,587,600（126×10×126×10）種字元，足以覆蓋 Unicode 的 1,112,064（17×65536 − 2048 個代理對）個有效碼位。

由於四位元組區段通過填空定義，要寫出處理這段轉換的程式需要同時知道 GBK 的覆蓋範圍，並不簡單：

```
U+00DE (Þ) → 81 30 89 37
U+00DF (ß) → 81 30 89 38
U+00E0 (à) → A8 A4
U+00E1 (á) → A8 A2
U+00E2 (â) → 81 30 89 39
U+00E3 (ã) → 81 30 8A 30
```

WHATWG 和 W3C 的 GB 18030 實現通過一張「位置偏移表」記錄 GB 18030 四位元組區中連續的幾塊碎片，以便高效處理轉換。ICU 和 glibc 也都對大塊連續的區域使用了類似的策略。

## 版本

* GB 18030-2000，相容 Unicode 3.0 中日韓統一表意文字（即擴充 A 區），共收 27,533 個漢字；2000 年 3 月 17 日發布、2000 年 7 月 1 日實施。
* GB 18030-2005，更新至 Unicode 3.1 中日韓統一表意文字（即擴充 B 區），並刊載少數民族包括朝鮮文、蒙古文（包括滿文、托忒文、錫伯文、阿禮嘎禮文）、德宏傣文、藏文、維吾爾文／哈薩克文／柯爾克茲文和彝文的文字。共有 70,244 個漢字；2005 年 11 月 8 日發布、2006 年 5 月 1 日實施。
* GB 18030-2022，更新至 Unicode 11 中日韓統一表意文字（增補了基本區的 66 個字，並在擴充 A、B 區的基礎上增加了擴充 C、D、E、F 區），新增康熙部首，以及滇東北苗文、傈僳文、西雙版納新傣文、西雙版納老傣文、德宏傣文等少數民族文字以及蒙古文 BIRGA 符號，共收錄漢字 87,887 個和漢字部首 228 個，比上一版增加錄入了 1.7 萬餘個生僻漢字；於 2022 年 7 月 19 日發布、2023 年 8 月 1 日實施。

## 參見

* 國家標準代碼
* GBK
* 中文電碼
* 1983 年《標準電碼本（修訂本）》的維基詞典頁面

## 注釋

## 參考資料

## 外部連結

* 新浪網：關於 GB18030 漢字編碼標準集（頁面存檔備份，存於網際網路檔案館）
* 新浪網：電腦漢字不夠用 電腦也要「掃盲」（頁面存檔備份，存於網際網路檔案館）
* Update on GB 18030:2005, Ken Lunde, 2006-11-13（頁面存檔備份，存於網際網路檔案館）
* http://source.icu-project.org/repos/icu/data/trunk/charset/data/xml/gb-18030-2000.xml（頁面存檔備份，存於網際網路檔案館）
* ICU Converter Explorer: GB18030（頁面存檔備份，存於網際網路檔案館）（英語）
* 微軟有關 GB18030 編碼的介紹（英語）
* 微軟：老舊軟體可能發生的相容問題（頁面存檔備份，存於網際網路檔案館）（英語）
* 微軟 Win2000 GB18030 支援包（頁面存檔備份，存於網際網路檔案館）
* GB18030 與 Unicode 對照表（頁面存檔備份，存於網際網路檔案館）