大五碼

**五大碼**（原名）／**大五碼**（誤譯）／**Big5**（唔譯），係喺大家未廣泛採用統一碼之前，繁體中文社群裏面最常用嘅電腦漢字字符集標準，總共收錄13060個漢字。

中文編碼分為內碼以及交換碼兩類，大五碼屬於中文內碼。至於中文交換碼，出名嘅有CCCII、CNS11643等。

大五碼雖然普及於台灣、香港同埋澳門等繁體中文通行區，但長期以來並非當地嘅官方標準，而只係業界標準。倚天中文系統、Windows繁體中文版等主要系統嘅字元集都係以大五碼為基準，但係廠商又各自增加唔同嘅造字同埋造字區，衍生出多種唔同嘅版本。

2003年，大五碼被收錄到CNS11643中文標準交換碼嘅附錄當中，得到咗台灣官方正式認可個地位，呢個最新版本被稱為Big5-2003。而喺香港，有政府補完嘅香港增補字符集，作爲官方標準。

## 歷史同名稱
「五大碼」係由臺灣財團法人資訊工業策進會爲五大中文套裝軟體設計嘅中文共通內碼，喺1983年12月完成同對外公告。第二年3月，資訊工業策進會同臺灣13間廠商簽定「16位元個人電腦套裝軟體合作開發（BIG-5）計劃（五大中文套裝軟體）」，因爲呢套中文內碼係爲臺灣自行製作開發嘅「五大中文套裝軟體」所設計嘅，所以就稱爲Big5中文內碼。

至於「五大中文套裝軟體」係邊五大，官方講法係資訊工業策進會同呢13間廠商合作進行嘅「五大軟體專案」開發出嚟嘅五種中文套裝軟體，分別係「文書處理」、「資料庫」、「試算表」、「通訊」同「繪圖」。不過亦有硏究指係五大模組：系統公用程式、字嘅組成、狀態列設定、字形同列印設定。

五大中文套裝軟體雖然冇好似預期噉取代國外嘅套裝軟體，但係隨住採用五大碼嘅國喬中文系統同倚天中文系統相繼橫掃臺灣市場，令五大碼深遠噉影響正體中文電腦內碼，直至今日。「五大碼」嘅英文名「」後嚟畀人按照英文字序硬譯番做中文，搞到而家有「五大碼」同「大五碼」兩種中文叫法。

大五碼誕生，係因爲當時個人電腦冇共通嘅內碼，搞到廠商推出嘅中文應用軟體無法推廣，而且同IBM 5550、王安碼等內碼彼此互不兼容；另一方面，臺灣當時仲未推出中文編碼標準。喺噉樣嘅時空背景下，爲咗令臺灣早日進入資訊時代，共用改用新嘅中文編碼就成爲各廠商所採行嘅計劃；同時，呢個計劃對於以臺灣爲核心嘅亞洲繁體漢字圈亦產生咗久遠嘅影響。

大五碼誕生之前，研發中文電腦嘅朱邦復認爲內碼字集應該廣納所有正異體字，以照顧戶政等等嘅實用需求，因此喺當時嘅內碼會議中，建議採用佢硏發有超過五萬字嘅字庫。工程師認爲雖然佢嘅技術可行，但係三個位元組（超過兩個位元組）長度嘅內碼，會喺英文螢幕畫面映射成中文畫面嗰陣，發生文字無法對齊嘅問題，噉係因爲當時盛行嘅倚天中文系統畫面以兩位元組文字寬度映射成一個中文字圖樣，英文軟體中只要以兩個英文字寬度去顯示一個中文字，畫面就唔會亂，呢一點令啲中文系統業者偏愛兩個位元組長度內碼；此外，啲工程師認爲以倉頡輸入碼壓縮成嘅內碼冇排序等功能，因此未獲採用。1983年有人誣指朱邦復爲共產黨，其研究成果更加唔可能獲得採用。

喺大五碼誕生後，大部分臺灣嘅電腦軟體都用咗大五碼嚟做內碼，加上後來倚天中文系統嘅普及，令後來嘅微軟Windows 3.x等系統亦都跟住用。雖然後來臺灣仲有各種編碼想取代大五碼，例如倚天中文系統後來推出嘅倚天碼、臺北市電腦公會所推動嘅公會碼等等，但係嗰陣時大五碼已經用咗多年，習慣唔容易改變，始終無法成爲主流字碼。而臺灣後來發展嘅中文資訊交換碼（CCCII）非一般內碼系統，係以交換使用爲目的，受先天所限，必須用至少三個位元組嚟表示一個漢字，普同率遠遠唔及大五碼。

喺1990年代初期，中國大陸嘅電郵同轉碼軟體仲未普遍，喺深圳嘅港商同臺商公司亦都曾經使用大五碼嘅系統，以方便同總部交流文件，亦都避免爲中國辦公室再寫一套唔同內碼嘅系統。至於用簡體中文嘅社群，最常用嘅係中國嘅國標碼（GB 2312、GB 18030）同GBK。

除咗臺灣之外，其他使用繁體漢字嘅地區，例如香港（香港增補字符集）、澳門（澳門增補字符集），同埋使用繁體漢字嘅海外華人，都曾普遍使用大五碼嚟做中文內碼同交換碼。

## 相關標準歷程

## 字節結構
大五碼係雙位元組字符集，以十六進制表示，使用雙八碼儲存方法，以兩字節安放一字。第一字節稱爲「高位字節」，第二字節稱爲「低位字節」。

「高位字節」使用咗0x81至0xFE，「低位字節」使用咗0x40至0x7E，同0xA1至0xFE。喺大五碼嘅分區中：

值得留意嘅係，Big5重複收錄咗兩個相同嘅字：「兀」（0xA461/U+5140同0xC94A/U+FA0C）、「嗀」（0xDCD1/U+55C0同0xDDFC/U+FA0D）。

此外，有啲編碼映射將符號區嘅花碼「〸」、「〹」、「〺」映射到漢字（分别爲U+5341，U+5344同U+5355）度而唔係中日韓符號同標點區（分别为U+3038，U+3039同U+303A），喺檢索系統入面成日會造成查唔到要查嘅字。

### 衝碼問題
低位元字元中包含咗程式語言、shell、script中，字串或命令常會用到嘅0x5C「\」、0x7C「&#124;」等等特殊字元。「\」喺好多用途嘅字串入面當做轉義符號，例如\n（換行）、\r（歸位）、\t（tab）、\\（\本身符號）、\"（引號）等等。而「|」喺UNIX作業系統入面多數當做命令管線嚟用，例如「ls -la | more」等等。如果喺字串入面有呢啲特殊嘅轉義字元，會畀電腦程式或者直譯器解釋爲特殊用途。但係因爲係中文，所以無法正確解釋做上面所講嘅行爲，於是程式可能會忽略呢個轉義符號，或者係誤將中文字碼嘅一部份當咗做轉義符號而中斷執行，係噉就違反咗使用者本來要當成中文字元一部份嚟用嘅本意。

低位元字元同ASCII重疊嘅字元爲0x40到0x7E，如下︰

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

佢哋喺常用字例如「功」（0xA55C）、「許」（0xB35C）、「蓋」（0xBB5C）、「育」（0xA87C）、「會」（0xB77C）度時常出現，令好多軟件無法正確噉處理大五碼嘅字串或者文件。有人搞笑噉將呢個問題戲稱爲「**許功蓋**」或者「**許蓋功**」（呢三個字都有呢種問題）。

一般嘅解決方法，係額外增加多一個「\」字元，因爲「\\」會被解釋爲「\」，所以「成功\因素」呢個字串就能夠無誤噉畀程式當做「成功因素」嘅字串嚟處理。但係額外嘅困擾係，有啲輸出功能唔會將「\」當做特殊字元看待，所以有啲程式或網頁就會錯誤噉喺「許功蓋」呢啲字後面顯示出多個「\」。

低位元組爲「\」（0x5C）嘅字元：

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

低位元組爲「|」（0x7C）嘅字元：

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

如果有使用者檔案上傳到ftp，而個檔案名有中文字元，當中又包含咗低位元組爲0x5C（\）嘅字元，檔案就會上傳唔到去ftp度；而當中包含低位元組爲0x7C（|）嘅字元，雖然可以上傳到ftp（只要唔包含低位元組爲0x5C嘅字元），但係低位元組會自動變成0x5F（_），結果就會亂碼，例如檔案名「教**育**部第**四**次**會**議紀錄」會變成「教**灶**部第**北**次**愷**議紀錄」。

#### 同畫線字元相衝
大五碼字元嘅首位元組會同DOS代碼頁437嘅畫線字元相衝而產生亂碼。

例如

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

如果用大五碼嚟儲存呢啲中文字，顯示時會變成：

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

替代嘅方法係用全形畫線字元，但係會較佔空間。倚天公司另外推出倚天碼解決呢個問題，不過呢種新編碼唔流行。

### 私人造字區
喺倚天中文系統，同埋後來嘅Windows 3.1、95同98之中，定義咗四個私人造字區範圍：0xFA40-0xFEFE、0x8E40-0xA0FE、0x8140-0x8DFE、0xC6A1-0xC8FE。

私人造字區嘅原意，係供使用者加入本來喺編碼表中缺少嘅字元，但係每個使用者都喺唔同嘅地方加上唔同嘅字元之後，佢哋交換資料時，對方就難以知道某一個編碼究竟想表達咩字。

## 影響
自從中文電腦流行後，好多日常用字都被視爲異體字而未收錄。很多人，甚至電視臺嘅字幕、報紙嘅用字習慣都因爲噉而改變。

例如中華民國教育部視「着」爲「著」嘅異體字，於是冇收錄「着」字。不過「着」字喺香港嘅敎育標準常用字字形表入面係正字，同「著」字分工。又例如臺灣揀咗「裡、峰、床、羣、衛」做正字，不過香港嘅敎育標準用「裏、峯、牀、羣、衞」。大五碼嘅選字令香港嘅老師傷腦筋。

粵語地區使用粵文，但係好多官話中文唔用嘅粵文漢字，大五碼都冇收錄，例如「嘅、喺、咗、嗰、啲、吓、㖭、㗎、啱、㓤、両、乸、冚、冧、唞、唓、嘞、噏、嚟、嚿、噃、孭、掹、揸、揞、揼、聱、搲、摱、攞、攰、梘、燶、瞓、糉、糍、螆、裇、踎、踭、軚、餸、𡃁、𨋢」。港澳地區有唔少地名，亦都需要用大五碼冇收錄嘅字，好似「邨」——香港絕大部份公共屋邨名例如杏花邨同牛頭角上邨等、「埗」——深水埗、「氹」——氹仔、「鰂」——鰂魚涌、「鱲」——赤鱲角、「滘」——大埔滘、「脷」——鴨脷洲等等。淨係用大五碼，呢啲字亦都打唔出。臺灣都有閩南語字、客語字等等地方用字面對相同情況，例如「廍」字，臺語指製糖所，常見於鄉間地名，但由於Big5未收呢個字。

仲有，康熙字典中嘅一啲部首用字（例如「丨」、「亠」、「疒」、「辵」、「癶」、「隶」等等）、姓氏用字「凃」、常見人名用字（例如「堃」——中華民國前行政院院長游錫堃、「煊」——中華民國前財政部部長王建煊、「栢」——歌手張栢芝、「峯」——歌手吳青峯同林峯、「喆」——歌手陶喆、「珉」——韓國女演員權珉娥同男演員沈昌珉、「瑈」——前越南總統吳廷琰胞弟吳廷瑈、「瀞」——臺北市議會議員黃瀞瑩同女演員黃瀞怡、「彣」——臺灣游泳運動員林姵彣同香港空手道運動員陳枷彣、「羣」——香港名人李曾超羣同臺灣歌手林育羣、「伃」——女演員鄭倢伃）、常見公司或機構名用字（例如「綫」——無綫電視、「滙」——滙豐銀行、「恒」——恒生銀行、「碁」——宏碁電腦），呢啲字雖然受中文社會廣泛採用，但係都冇收錄喺大五碼入面。

另外好多日本人嘅姓名有嘅字，亦都唔包括喺大五碼之中。好似「瑠」——日本女藝人波瑠同香港VTuber如月瑠美、「樫」——日本漫畫家富樫義博同日本男聲優樫井笙人、「畑」——日本漫畫家小畑健同日本警探電視劇角色古畑任三郎、「坂」——日本作曲家坂本龍一同日本演員坂口健太郎、「凪」——日本漫畫角色三千院凪等字都係。

大五碼嘅缺字之中，亦都有唔少科學用字，例如化學元素名都冇收齊。又例如現代人體質易過敏、環境常有過敏源，「塵蟎」嘅「蟎」字好常用，但係Big5碼都冇收。

遇到大五碼冇收錄嘅字，好多人會搵其他字代替。以「坂」字爲例，啲人經常用「阪」字代替（注意大阪嘅古稱就係「大坂」，見大坂之役），好多業者（例如光榮）製作相關歷史題材遊戲嘅中文版本嗰陣，本應使用古名嘅「坂」字都一樣用「阪」字代替，令到現時仍然有唔少中文使用者誤植爲「大**阪**之陣」。另外好似「廍」字，亦成日用「廓」、「部」嚟代替。其他未收錄嘅地名用字，例如「磘」字，亦被「瑤」、「嗂」代替。「滙豐銀行」、「恒生銀行」雖然用「滙」字同「恒」字嚟註冊，不過大家亦都經常搵「匯」字同「恆」字代替。

另一種做法係靠拆字。喺互聯網上，經常可以見到啲人將游錫堃、王建煊、張栢芝、陶喆等名字，以拆字法寫成「游錫方方土」、「王建火宣」、「張木百芝」同「陶吉吉」等。電視上日本動畫嘅中文字幕中亦會看到像「木堅」（樫）、「火田」（畑）噉樣嘅字。而有口字邊嘅香港字，好多人會用英文字母「o」代替個口部，例如「o既」（嘅）、「o係」（喺）、「o左」（咗）。

### 大五碼未收錄字舉例

*其實倉頡輸入法都有編碼，如果系統支援「外字集」或者已經用咗統一碼，係可以輸入嘅。
*「邨」、「着」同「綫」喺香港極爲常用。而且「邨」同「村」、「着」同「著」喺香港有客觀嘅字義分工，唔應該視爲異體字。

## 大五碼延伸
大五碼嘅一萬多字只係根據中華民國教育部頒佈嘅《常用國字標準字體表》、《次常用國字標準字體表》等用字匯編而成，並冇考慮社會上流通嘅人名、地名用字、方言用字、化學同生物科學等用字，亦冇放入日語平假名同片假名字母；市面上支援大五碼嘅軟件有唔少都自行喺原本編碼外添加一啲符號同用字。

### 非官方Big5延伸

#### 倚天Big5延伸
倚天中文系統爲咗同IBM 5550碼相容，喺大五碼添加咗以下字元，稱爲倚天擴充字集：
*喺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位元測試版。

### 官方大五碼延伸
#### 中華民國教育部造字檔
中華民國教育部有佢本身一套造字檔，主要畀部門內使用，亦用於教育部嘅網路字典。

#### 中華民國行政院農委會常用中文外字集
中華民國行政院農業委員會曾制訂一套有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
鑑於大五碼唔係官方標準，中推會接受經濟部標準檢驗局委託，召集臺灣國內業者、專家同學者編製一個大五碼嘅對照表，而且將佢放到臺灣官方嘅CNS&nbsp;11643附錄裏面，正式成爲官方標準嘅一部份。

喺Big5-2003之中，收錄咗所有喺1984年五大編碼嘅所有字元，另外再加入微軟代碼頁950嘅歐元符號、倚天延伸字集嘅0xA3C0-0xA3E0、0xC6A1-0xC7F2、0xF9D6-0xF9FE嘅用字。Big5-2003冇收錄行列輸入法特殊符號同0xC7F3-0xC875嘅俄語西里爾字母，理由係以CNS&nbsp;11643冇呢啲字符。除此之外，所有倚天延伸全部收錄。另外，佢試圖減少Unicode東亞文字字寬有問題嘅「模糊」部份，改變咗某啲符號嘅Unicode對應，導致代碼頁950並唔完全係Big5-2003嘅子集合；另外，0xC6C0-0xC6D7對應到Unicode嘅康熙字典部首區而非漢字區。

相對於Big5-2003，最早冇加上延伸之大五碼則稱爲Big5-1984。

#### 香港增補字符集

香港增補字符集（Hong Kong Supplementary Character Set，簡稱HKSCS）係香港政府基於大五碼之上擴展嘅字符集標準，係現時香港嘅中文資訊交換內碼標準。香港增補字符集之前稱爲《政府通用字庫》，本來只係香港政府內部統一使用嘅造字檔，有三千幾字。但係由於香港電腦業界不斷要求政府迎合本地需要，提出官方嘅字符集方案，以便同政府來往文件，於是香港政府就喺1995年公開呢套內部使用嘅標準。到咗1999年，呢套字集增加到四千幾字，並且改爲現名。

呢套字符集由中文界面諮詢委員會管理，仍然不斷擴充緊。字符集主要包括香港地名、人名用漢字、粵語用字（包括粗言穢語喺內，呢係應警方同法庭需要記錄口供之用）、異體字、小部份簡體字、平假名、片假名同俄語西里爾字母。

## 發展
各廠商同政府推出嘅大五碼延伸並唔兼容，造成亂碼問題。鑑於Unicode可以正確處理七萬多漢字，近年嘅作業系統同應用程式（如蘋果電腦Mac OS X同以Cocoa API撰寫之程式、Microsoft Windows 2000同之後版本、Microsoft Office 2000同之後版本、Mozilla瀏覽器、Internet Explorer瀏覽器、Java語言等等），已經改用Unicode編碼。可惜現時仍然有啲舊軟件（如Visual Basic 6、部份Telnet或BBS軟件）仲未支援Unicode編碼。

## 參考

*
*《中文字碼 萬碼奔騰 一碼當先》作者：黃大一，永麒科技出版

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

## 出面連結
*Big5字符集簡介
*Big5編碼系統 
*Big5內碼表 
*BIG5编码查询
*CCCII中文資訊交換碼
*CNS 11643國家標準中文交換碼 
*ICU Converter Explorer (Big5) 
*Mozilla系列同Big5中文字碼 
*RFC1922附錄中含Big5同CNS11643相轉資訊 
*中文數位化技術推廣基金會
*微软CP950编码表 
*香港特區政府：香港增補字符集
*補完計劃跟Big5 2003相異處（扣掉保留區、造字區）