Big5編碼

**大五碼**（英語：Big5，又稱為**五大專案碼**）是使用繁體中文（正體中文）社群中最常用的電腦漢字字元集標準，共收錄 13,060 個漢字。

中文碼分為內碼及交換碼兩類，Big5 屬中文內碼，知名的中文交換碼有 CCCII、CNS11643。

Big5 雖普及於台灣、香港、澳門等繁體中文區域，但長期以來並非當地的國家 / 地區標準或官方標準，而只是業界標準。倚天中文系統、Windows 繁體中文版等主要作業系統的字元集都是以 Big5 為基準，但廠商又各自增加不同的造字與造字區，衍生成多種不同版本。

2003 年，Big5 收錄到 CNS11643 中文標準交換碼的附錄當中，取得了較正式的地位。這個最新版本稱為 **Big5-2003**。

## 歷史及名稱

「大五碼」（Big5）是由台灣財團法人資訊工業策進會為五大中文套裝軟體所設計的中文共通內碼，在 1983 年 12 月完成公告，隔年 3 月，資訊工業策進會與臺灣 13 家廠商簽定「16 位元個人電腦套裝軟體合作開發（BIG-5）計畫（五大中文套裝軟體）」，因為此中文內碼是為臺灣自行製作開發之「五大中文套裝軟體」所設計的，所以就稱為 Big5 中文內碼。五大中文套裝軟體雖然並沒有如預期的取代國外的套裝軟體，但隨著採用 Big5 碼的國喬中文系統及倚天中文系統先後在台灣市場獲得成功，使得 Big5 碼深遠地影響正體中文電腦內碼，直至今日。「五大碼」的英文名稱「Big5」後來被人按英文字序譯回中文，以致現在有「五大碼」和「大五碼」兩個中文名稱。

Big5 碼的產生，是因為當時個人電腦沒有共通的內碼，導致廠商推出的中文應用軟體無法推廣，並且與 IBM 5550、王安碼等內碼，彼此不能相容；另一方面，台灣當時尚未推出中文編碼標準。在這樣的時空背景下，為了使台灣早日進入資訊時代，所採行的一個計畫；同時，這個計畫對於以台灣為核心的亞洲繁體漢字圈也產生了久遠的影響。

Big5 產生前，研發中文電腦的朱邦復認為內碼字集應該廣納所有的正異體字，以顧及如戶政等應用上的需要，故在當時的內碼會議中，建議希望採用他的五萬多字的字庫。工程師認為雖其技術可行，但是三個位元組（超過兩個位元組）長度的內碼卻會造成英文螢幕畫面對映成中文畫面會發生文字無法對齊的問題，因為當時盛行之倚天中文系統畫面以兩個位元組文字寬度對映成一個中文字圖樣，英文軟體中只要以兩個英文字寬度去顯示一個中文字，畫面就不會亂掉，造成中文系統業者偏愛二個位元組長度的內碼；此外以倉頡輸入碼壓縮成的內碼不具排序等功能，因此未被採用。1983 年有人誣指朱邦復為共產黨，其研究成果更不可能獲採用。

在 Big5 碼誕生後，大部分台灣的電腦軟體都使用了 Big5 碼，加上後來倚天中文系統的高度普及，使後來的微軟 Windows 3.x 等亦予以採用。雖然後來台灣還有各種想要取代 Big5 碼，像是倚天中文系統所推行的倚天碼、台北市電腦公會所推動的公會碼等，但是由於 Big5 字碼已沿用多年，因此在習慣不易改變的情況下，始終無法成為主流字碼。而台灣後來發展的中文資訊交換碼（CCCII）由於非一般的內碼系統，是以交換使用為目的，受先天所限，必須使用至少三個位元組來表示一個漢字，所以普及率遠遠不及 Big5 碼。

在 1990 年代初期，當中國大陸的電子郵件和轉碼軟體還未普遍之時，在深圳的港商和台商公司亦曾經使用 Big5 系統，以方便與總部的檔案交流、以及避免為中國的辦公室再寫一套不同內碼的系統。使用簡體中文的社群，最常用的是中國的國標碼（GB 2312、GB 18030）和 GBK。

除了台灣外，其他使用繁體漢字的地區，如香港（香港增補字符集）、澳門（澳門增補字符集），及使用繁體漢字的海外華人，都曾普遍使用 Big5 碼做為中文內碼及交換碼。

## 相關標準歷程

## 位元組結構

Big5 碼是一套雙位元組字元集，使用了雙八碼儲存方法，以兩個位元組來安放一個字。第一個位元組稱為「高位位元組」，第二個位元組稱為「低位位元組」。

「高位位元組」使用了 0x81-0xFE，「低位位元組」使用了 0x40-0x7E，及 0xA1-0xFE。在 Big5 的分割區中：

值得留意的是，Big5 重複收錄了兩個相同的字：「兀」（0xA461/U+5140 及 0xC94A/U+FA0C）、「嗀」（0xDCD1/U+55C0 及 0xDDFC/U+FA0D）。此外「十」、「卅」也在符號區又重複了一次，在檢索系統中常會造成查詢不到字。

### 衝碼問題

因為低位元字元中包含了程式語言、shell、script 中，字串或命令常會用到的特殊字元，例如 0x5C「\」、0x7C「|」等。「\」在許多用途的字串中是當作轉義符號，例如 \n（換行）、\r（歸位）、\t（tab）、\\（\ 本身符號）、\"（引號）等等。而「|」在 UNIX 作業系統中大多當作命令管線的使用，如"ls -la | more" 等等。如果在字串中有這些特殊的轉義字元，會被電腦程式或直譯器解釋為特殊用途。但是因為是中文的原因，故無法正確解釋為上面所述的行為，因此程式可能會忽略此轉義符號或是誤當作轉義符號而中斷執行。若此，就違反了使用者本來要當成中文字元一部份使用的本意。

低位元字元與 ASCII 重疊的字元為 0x40 到 0x7E，如下︰

```
@ A-Z [ \ ] ^ _ ` a-z { | } ~
```

在常用字如「功」（0xA55C）、「許」（0xB35C）、「蓋」（0xBB5C）、「育」（0xA87C）中時常出現，造成了許多軟體無法正確處理以 Big5 編碼的字串或檔案。這個問題被戲謔性地人名化，稱為「**許功蓋**」或「**許蓋功**」（這三個字都有這種問題）。

一般的解決方法，是額外增加「\」的字元，因為「\\」會被解釋為「\」，所以「成功 \ 因素」這個字串就能無誤地被程式當作「成功因素」的字串來處理。但是額外的困擾是，有些輸出功能並不會把「\」當作特殊字元看待，所以有些程式或網頁就會錯誤地常常出現在「許功蓋」這些字後面多了「\」。

低位元組為「\」（0x5C）的字元：

```
﹏ 兝 α 么 功 吒 吭 沔 坼 歿 俞 枯 苒 娉 珮 豹 崤 淚 許 廄 琵 跚 愧 稞 鈾 暝 蓋 墦 穀 閱 璞 餐 縷 擺 黠 孀 髏 躡 ふ ж 尐 佢 汻 岤 狖 垥 柦 胐 娖 涂 罡 偅 惝 牾 莍 傜 揊 焮 茻 鄃 幋 滜 綅 赨 塿 槙 箤 踊 嫹 潿 蔌 醆 嬞 獦 螏 餤 燡 螰 駹 礒 鎪 瀙 酀 瀵 騱 酅 贕 鱋 鱭
```

低位元組為「|」（0x7C）的字元：

```
﹄ └ ㄍ 弋 四 帆 坑 育 尚 泜 咽 洱 迢 徑 砝 院 悴 琍 逖 揉 稅 閏 會 腮 頌 漏 誡 慝 罵 魯 糕 嚐 舉 甕 牘 辮 疊 鸛 ア 𠂊 戉 吜 芎 怙 矹 峗 洀 苶 恝 烡 茦 唰 掤 痎 虖 圌 斮 琰 萆 隇 搉 煟 腶 輋 嫟 漒 翣 銔 憰 獡 蔙 鋧 懁 瞣 褟 鮐 瞲 觲 鴱 聵 鞫 矱 霬 礨 鶘 驂 驏 鼶 鸓
```

當把有中文字元檔名的檔案上傳到 ftp 時，當中包含低位元組為 0x5C（\）的字元的檔案是不能上傳到 ftp 的，而當中包含低位元組為 0x7C（|）的字元的檔案，是可以上傳到 ftp（只要不包含低位元組為 0x5C 的字元），但是低位元組會變成 0x5F（\_），例如檔名「教育部第四次會議紀錄」會變成「教灶部第北次愷議紀錄」。

#### 與畫線字元相衝

Big5 碼字元的首位元組會與 DOS 代碼頁 437 的畫線字元相衝而產生亂碼。

例如

```
┌───────┐
│維基百科│
└───────┘
```

當中的中文字如以 Big5 碼儲存，顯示時會變成：

```
┌────────┐
竟�穧坌鮈�
└────────┘
```

也有替代方法就是用全形劃線符號，但較佔空間。倚天公司另外推出倚天碼解決此問題，但不流行。

### 私人造字區

在倚天中文系統，以及後來的 Windows 3.1、95 及 98 中，定義四個私人造字區範圍：0xFA40-0xFEFE、0x8E40-0xA0FE、0x8140-0x8DFE、0xC6A1-0xC8FE。

私人造字區的原意，是供使用者加入本來在編碼表中缺少的字元，但當每個使用者都在不同的地方加上不同的字元後，當交換資料時，對方便難以知道某一個編碼究竟想表達什麼字。

## 影響

自中文電腦流行後，由於很多日常用字被視為異體字而未收錄。很多人，甚至電視台的字幕、報紙的用字習慣都被改變。

例如中華民國教育部視「着」為「著」的異體字，故沒有收錄「着」字。康熙字典中的一些部首用字（如「亠」、「疒」、「辵」、「癶」等）、常見的人名用字（如「堃」（中華民國前行政院長游錫堃）、「煊」（中華民國前監察院院長、前財政部長王建煊）、「栢」（歌手張栢芝）、「峯」（歌手吳青峯、林峯）、「喆」（歌手陶喆）等）、「羣」（香港名人李曾超羣）等），雖受中文社會廣泛採用，也沒有收錄到 Big5。

另外像臺灣的「廍」，臺語指製糖所，常見於鄉間地名。但由於大五碼未收此字，也被「廓」、「部」代替。其他未收錄的地名用字，如「磘」，也被「瑤」、「嗂」代替。

在網際網路上，經常能見到把游錫堃、王建煊、張栢芝、陶喆等名字，寫成為「游錫方方土」、「王建火宣」、「張木百芝」和「陶吉吉」等。電視上日本動畫的中文字幕中也會看到像 **「木堅」** （樫）這樣的字。

### Big5 未收錄字舉例

* 在倉頡輸入法中卻可輸入。
* 「邨」、「着」及「綫」在香港極為常用。而且「邨」和「村」、「着」和「著」在香港有客觀的字義分工，不能視爲異體字。
* 塵「蟎」因為現代人體質易過敏、環境常有過敏源，「蟎」很常用。

## Big5 延伸

由於 Big5 碼內的一萬多個字，只是根據中華民國教育部頒布的《常用國字標準字體表》、《次常用國字標準字體表》等用字匯編而成，並沒有考慮社會上流通的人名、地名用字、方言用字、化學及生物科學等用字，亦沒有放入日語平假名及片假名字母。

所以在市面上支援 Big5 碼的軟體，有不少都自行在原本的編碼外，添加一些符號及用字。

### 非官方 Big5 延伸

#### 倚天 Big5 延伸

倚天中文系統為與 IBM5550 碼相容，在 Big5 碼添加了以下字元，稱為倚天擴充字集：

* 在 0xA3C0-0xA3E0，添加了 33 個控制字元圖像。
* 罕用符號區。在 0xC6A1-0xC8D3，添加了圓形 1-10、括號 1-10、小寫羅馬數字（ⅰ、ⅱ、ⅲ、…、ⅸ、ⅹ）等章節符號、一些部首（⼂、⼃、⼅、⼇、⼌、⼍、⼎、⼓、⼖、⼙、⼛、⼢、⼧、⼮、幺、⼴、⼵、⼹、⼺、⽁、⽆、⽧、⽨、⾡、⾪）及筆畫結構（㇏、𠃌、乚、𠂊、刂、䒑、龰、冈、龱、𧘇）、日語中的平假名、片假名和常用符號，以及俄語使用的西里爾字母，此外還有行列 40 輸入法使用的鍵名。
* 在 0xF9D6-0xF9FE，添加了 7 個倚天擴充字（碁、銹、裏、墻、恒、粧、嫺）和 34 個製表符號和區塊元件。

這個延伸有時稱為 Big5-Eten。由於倚天中文系統是 Windows 95 推出之前市場佔有率最高的中文系統，此延伸是各種非官方延伸當中最重要的一個。不少後續的延伸字集，都會留空倚天 Big5 延伸已使用的碼位，甚至直接吸納倚天 Big5 延伸的字元（但位於 C8A5 至 C8CC 的行列 40 輸入法鍵名除外）。

在後期版本的倚天中文系統中，更加入了一些圖案和簡體中文字，但未被廣泛接受。

#### Code Page 950

Windows 使用的 Code Page 950（參照了 IBM Big 5 碼的編碼頁號 Code Page 950，簡稱 CP950）之中，只添加了上述 0xF9D6-0xF9FE 的倚天擴充字及表格符號，並沒有加入日文假名字母等其他延伸。

在 Windows ME 之中，微軟首度在 0xA3E1 加入了歐元（€）符號，之後所有 Windows 版本的 Code Page 950 也都有這個符號。

#### 中國海字集

「中國海字集」是中國海公司所出品的繁體漢字造字檔。它本身雖然是一套商品，但中國海公司很少將之單獨販售，往往是與其他軟體一同銷售。例如：中國海字集就曾經與《漢書》、《輕鬆輸入法》等一同發售。由於它包括了不少社會上常見的用字、日文假名、和字等，加上曾與 Office 97 中文版一併發售，所以比起其他官方 Big5 延伸，更被台灣民眾所接受。香港部份 BBS 網路在香港增補字符集未出現之前，一度以中國海字集為標準。

#### 日和字集

「日和字集」乃香港人內木一郎和阿烈開發的 TrueType 造字檔，以相容香港增補字符集為賣點，增補字集中仍沒涵蓋的日語假名、日本漢字和日本國字，有細明體、標楷體、中黑體等配合 Windows 95、98、NT 等作業系統字型的字款，並附有倉頡、速成等輸入法作輔助，以及把字集文件轉換至日語編碼的轉碼器工具。

#### Unicode 補完計畫

「Unicode 補完計畫」前稱「BIG5 Extension」，透過修改 Microsoft Windows 及 Mozilla 的編碼表，從而使用者能在網上傳遞及交換文字。

有鑑於「中國海字集」的成功，「Unicode 補完計畫」第二版採用了「中國海字集」原有的造字，再加上「中國海字集」所欠的部分簡體中文字及香港粵語用字，建成一個能在 Big5 及 Unicode 之間轉換的編碼表；該計劃目前已推出了 64 位元測試版。

### 官方 Big5 延伸

#### 中華民國教育部造字檔

中華民國教育部有它本身的一套造字檔，主要給部門內使用，亦於教育部的網路字典使用。

#### 中華民國行政院農委會常用中文外字集

中華民國行政院農業委員會曾制訂一套有 133 個漢字的造字檔，其中有 84 個是魚字部漢字、7 個是鳥字部漢字。

#### Big5+

1997 年中華民國行政院研究發展考核委員會成立專案委託中文數位化技術推廣基金會（中推會）辦理 Big5 + 擴編計畫，使用了兩萬多碼位，納入了 Unicode 1.1 下所有漢字。由於編碼使用到的範圍超過原先 Big5 定義（Big5 + 使用了高位元組 0x81-0xFE，低位元組 0x40-0x7E、0x80-0xFE），無法安裝在 Microsoft Windows 上，現幾乎無人使用。

#### Big-5E

為了使 Microsoft Windows 使用者可以使用造字檔，中華民國行政院研考會再度委託中推會推出一個補充字集 Big-5E（與 Big5 + 並不相容），共收 3954 字。因為 Big5 + 的編碼限制，再加上 Unicode 已漸成氣候，除了部分政府單位使用之外，Big-5E 並沒有被廣泛的接受。Mac OS X 10.4 及以上支援 Big-5E。

#### Big5-2003

鑑於 Big5 不是官方標準，中推會接受經濟部標準檢驗局委託，召集台灣國內業者、專家和學者編製一個 Big5 的對照表，並把它放到台灣官方的 CNS 11643 附錄裡，正式成為官方標準的一部分。

在 Big5-2003 之中，收錄了所有在 1984 年 Big5 編碼的所有字元，另外再加入微軟代碼頁 950 的歐元符號、倚天延伸字集的 0xA3C0-0xA3E0、0xC6A1-0xC7F2、0xF9D6-0xF9FE 的用字。Big5-2003 沒有收錄行列輸入法特殊符號及 0xC7F3-0xC875 的俄語西里爾字母，理由是以 CNS 11643 沒有這些字元。除此之外，所有倚天延伸全部收錄。另外，它試圖減少 Unicode 東亞文字字寬有問題的「模糊」部份，它把某些符號的 Unicode 對應做了改變，導致代碼頁 950 並不完全是 Big5-2003 的子集合；另外，0xC6C0-0xC6D7 對應到 Unicode 的康熙字典部首區而非漢字區。

相對於 Big5-2003，最早沒有加上延伸之 Big5 則對稱為 Big5-1984。

#### 香港增補字符集

香港增補字符集（Hong Kong Supplementary Character Set，簡稱 HKSCS）是香港政府基於大五碼之上擴展的字元集標準，是現時香港的中文資訊交換內碼標準。香港增補字符集以前稱為《政府通用字庫》，本來只是香港政府內部統一使用的造字檔，有三千多字。但由於香港電腦業界不斷要求政府迎合本地需要，提出官方的字元集方案，以便與政府進行檔案來往，於是香港政府便在 1995 年把這個內部使用的標準公開。到了 1999 年，此字集增加到四千多字，並改為現名。

此字元集由中文介面諮詢委員會管理，仍在不斷擴編之中。字元集主要包括香港地名、人名用漢字、粵語用字（包括粗言穢語在內，這是應警方及法庭需要記錄口供的需要）、異體字、小部份簡體字、平假名、片假名及俄語西里爾字母。

## 發展

由於各廠商及政府推出的 Big5 延伸，彼此互不相容，造成亂碼問題。鑑於 Unicode 能正確地處理七萬多個漢字，近年的作業系統和應用程式（如蘋果電腦 Mac OS X 和以 Cocoa API 撰寫之程式、Microsoft Windows 2000 及之後版本、Microsoft Office 2000 及之後版本、Mozilla 瀏覽器、Internet Explorer 瀏覽器、Java 語言等等），已改用 Unicode 編碼。可惜現時仍有一些舊的軟體（如 Visual Basic 6、部分 Telnet 或 BBS 軟體），未能支援 Unicode 編碼。

## 輸入方法

* VimIM 在 Vim 環境中，可以直接鍵入十進制或十六進制 Big5 （頁面存檔備份，存於網際網路檔案館）碼。既不需要啟動輸入法，也不需要碼表。

## 參考文獻

## 參看

* CCCII
* GB 18030《資訊交換用漢字編碼字元集基本集的擴充》
* Unicode
* 中日韓統一表意文字
* 中文亂碼
* 香港增補字符集（HKSCS）
* 國家標準中文交換碼（CNS 11643）

## 外部連結

* Big5 字元集簡介
* Big5 編碼系統 （頁面存檔備份，存於網際網路檔案館）
* Big5 內碼表 （頁面存檔備份，存於網際網路檔案館）
* BIG5 編碼查詢
* CCCII 中文資訊交換碼
* CNS 11643 國家標準中文交換碼 （頁面存檔備份，存於網際網路檔案館）
* ICU Converter Explorer (Big5) （頁面存檔備份，存於網際網路檔案館）
* Mozilla 系列與 Big5 中文字碼 （頁面存檔備份，存於網際網路檔案館）
* RFC1922 附錄中含 Big5 和 CNS11643 相轉資訊 （頁面存檔備份，存於網際網路檔案館）
* 中文數位化技術推廣基金會（頁面存檔備份，存於網際網路檔案館）
* 微軟 CP950 編碼表 （頁面存檔備份，存於網際網路檔案館）
* 香港特區政府：香港增補字符集
* 補完計畫跟 Big5 2003 相異處（扣掉保留區、造字區）