大五碼
维基百科,自由的百科全书
|
Big5,又稱為大五碼或五大碼,是使用繁体中文(正體中文)社群中最常用的電腦漢字字符集標準,共收錄13,060個漢字[1]。
中文碼分為中文內碼及中文交換碼兩類,Big5屬中文內碼,知名的中文交換碼有CCCII、CNS11643。
Big5雖普及於台灣、香港與澳門等繁體中文通行區,但長期以來並非當地的國家標準,而只是業界標準(de facto standard)。倚天中文系統、Windows等主要系統的字符集都是以Big5為基準,但廠商又各自增刪,衍生成多種不同版本。
2003年,Big5被收錄到台灣官方標準的附錄當中,取得了較正式的地位。這個最新版本被稱為Big5-2003。
[编辑] 歷史及名稱
「五大碼」(Big5)是在1984年由中華民國財團法人資訊工業策進會為五大中文套裝軟體所設計的中文內碼,所以就稱為Big5中文內碼,雖然五大套裝軟體並沒有成功,但Big5碼卻深遠地影響正體中文電腦內碼,直至今日[2]。「五大碼」的英文名稱「Big5」後來被人按英文字序譯回中文,以致現在有「五大碼」和「大五碼」兩個中文名稱。
Big5碼的產生,是因為當時台灣不同廠商各自推出不同的編碼,如IBM 5550、王安碼等,彼此不能兼容;另一方面,台灣當時尚未推出官方的漢字編碼,而中國大陆所推行的GB 2312編碼,亦未有收錄繁體字。在這樣的時空背景下,為了使台灣早日進入信息時代,所採行的一個計畫;同時,這個計畫對於以台灣為核心的亞洲繁體漢字圈也產生了久遠的影響。
Big5產生前,研發中文電腦的朱邦復認為這套內碼收字過少,在資策會內碼會議提出採用他的五萬多字的字庫。工程師已肯定其技術可行,但在1983年朱邦復被誣為共產黨,資策會因此放棄其研究成果。[3]
在Big5碼誕生後,大部分台灣的電腦軟體都使用了Big5碼,加上後來倚天中文系統的高度普及,使後來的微軟 Windows 3.x等亦予以採用。雖然後來台灣還有各種想要取代Big5碼,像是倚天中文系統所推行的倚天碼、中華民國中文電腦公會所推動的公會碼等,但是由於Big5字碼已沿用多年,因此在習慣不易改變的情況下,始終無法成為主流字碼。而台灣以後發展的國家標準中文交換碼(CNS 11643)由於先天所限,必須使用3位元組來表示一個漢字,與現行英語軟體欠缺相容,所以普及率遠遠不及Big5碼。
在1990年代初期,當中国大陆的电子邮件和轉碼軟體還未普遍之時,在深圳的港商和台商公司亦曾經使用Big5系統,以方便與總部的文件交流、以及避免為大陆的辦公室再寫一套不同內碼的系統。在使用简体中文社群,最常用的是GB 2312、GBK及其後續的國標碼(GB 18030)。
現在,除了台灣外,其他使用繁體漢字的地區,如香港、澳門,及使用繁體漢字的海外華人,都普遍使用Big5碼。這已經成為繁體中文顯示的標準格式。
[编辑] 字節結構
Big5碼是一套雙位元組字符集,使用了雙八碼儲存方法,以兩個字節來安放一個字。第一個字節稱為「高位字節」,第二個字節稱為「低位字節」。
「高位字節」使用了0x81-0xFE,「低位字節」使用了0x40-0x7E,及0xA1-0xFE。在Big5的分區中:
| 0x8140-0xA0FE | 保留給使用者自定義字元(造字區) |
| 0xA140-0xA3BF | 標點符號、希臘字母及特殊符號, 包括在0xA259-0xA261,安放了雙音節度量衡單位用字:兙兛兞兝兡兣嗧瓩糎。 |
| 0xA3C0-0xA3FE | 保留。此區沒有開放作造字區用。 |
| 0xA440-0xC67E | 常用漢字,先按筆劃再按部首排序。 |
| 0xC6A1-0xC8FE | 保留給使用者自定義字元(造字區) |
| 0xC940-0xF9D5 | 次常用漢字,亦是先按筆劃再按部首排序。 |
| 0xF9D6-0xFEFE | 保留給使用者自定義字元(造字區) |
值得留意的是,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" 等等。如果在字串中有這些特殊的轉義字元,會被程式或直譯器解釋為特殊用途。但是因為是中文的原因,故無法正確解釋為上面所述的行為,因此程式可能會忽略此轉義符號或是中斷執行。若此,就違反了使用者本來要當成中文字元一部份使用的本意。[4]
在常用字如「功」(0xA55C)、「許」(0xB35C)、「蓋」(0xBB5C)、「育」(0xA87C)中時常出現,造成了許多軟體無法正確處理以Big5編碼的字串或文件。這個問題被戲謔性地人名化,稱為「許功蓋」或「許蓋功」(這三個字都有這種問題)。
一般的解決方法,是額外增加“\”的字元,因為“\\”會被解釋為“\”,所以“成功\因素”這個字串就能無誤地被程式當作“成功\因素”的字串來處理。但是額外的困擾是,有些輸出功能並不會把“\”當作特殊字元看待,所以有些程式或網頁就會錯誤地常常出現在「許功蓋」這些字後面多了“\”。[4]
[编辑] 私人造字區
在倚天中文系統,以及後來的Windows 3.1、95及98中,定義了四個私人造字區範圍:0xFA40-0xFEFE、0x8E40-0xA0FE、0x8140-0x8DFE、0xC6A1-0xC8FE。
私人造字區的原意,是供使用者加入本來在編碼表中缺少的字元,但當每個使用者都在不同的地方加上不同的字元後,當交換資料時,對方便難以知道某一個編碼究竟想表達什麼字。
[编辑] 影響
自中文電腦流行後,由於很多日常用字被視為異體字而未收錄。很多人,甚至電視台的字幕、報紙的用字習慣都被改變。
例如台灣教育部視「着」為「著」的異體字,故沒有收錄「着」字。康熙字典中的一些部首用字(如「亠」、「疒」、「辵」、「癶」等)、常見的人名用字(如「堃」(前中華民國前行政院長游錫堃)、「煊」(中華民國監察院院長、前財政部長王建煊)、「栢」(歌手張栢芝)、「喆」(歌手陶喆)等),雖被中文社會廣泛採用,也沒有收錄到Big5之中。
在互聯網上,實在不難看到人們把游錫堃、王建煊、陶喆等名字,寫成為「游錫方方土」、「王建火宣」和「陶吉吉」等寫法。電視上日本動畫的中文字幕中也會看到像“木堅”這樣的字。
[编辑] Big5未收錄字舉例
- 在倉頡中卻可打之
- "邨"與"着"在香港裡極為常用
| 未收錄的字 | 有收錄的字 | 原因 | 倉頡碼 |
|---|---|---|---|
| 綫 | 線 | 俗字 | 女火戈戈 |
| 綉 | 繡 | 俗字 | 女火竹木尸 |
| 邨 | 村 | 被認為是異體字 | 心山弓中(2) |
| 滙 | 匯 | 異體字 | 水尸人土 |
| 栢 | 柏 | 異體字 | 木一日 |
| 峯 | 峰 | 異體字 | 山竹水十(2) |
| 頴 | 穎 | 異體字 | 心火一月金(3) |
| 着 | 著 | 被認為是異體字 | 廿手月山 |
| 双 | 雙 | 簡體字 | 水水(2) |
[编辑] Big5延伸
由於Big5碼內的萬多個字,只是根據中華民國教育部頒布的《常用國字標準字體表》、《次常用國字標準字體表》等用字匯編而成,並沒有考慮社會上流通的人名、地名用字、方言用字、化學及生物科等用字,亦沒有放入日語平假名及片假名字母。
所以在市面上支援Big5碼的軟件,有不少都自行在原本的編碼外,添加一些符號及用字。
[编辑] 非官方Big5延伸
[编辑] 倚天Big5延伸
在倚天中文系統中,為與IBM5550碼相容,他們在Big5碼添加了以下的字元:
- 在0xA3C0-0xA3E0,添加了33個控制字符的圖象。
- 罕用符號區。在0xC6A1-0xC875,添加了圓形1-10、括號1-10、小羅馬字i-ix等章節符號、一些部首及筆劃結構,日語平假名、片假名及俄語使用的西里爾字母。
- 在0xF9D6-0xF9FE,添加了7個倚天擴充字:碁、銹、恒、裏、墻、粧、嫺和34個表格符號。
這個延伸有時被稱為Big5-Eten。由於倚天中文系統是Windows 95推出之前市場佔有率最高的中文系統,此延伸是各種非官方延伸當中最重要的一個。
在後期版本的倚天中文系統中,更加入了一些圖案和簡體中文字,但未被廣泛接受。
[编辑] 微軟 Code Page 950
在微软 Windows的 Code Page 950 (簡稱 CP950) 之中,只添加了上述0xF9D6-0xF9FE的倚天擴充字及表格符號,並沒有加入日文假名字母等其他延伸,對不少使用Microsoft Windows的用者帶來困擾。
在Windows ME之中,微軟首度在0xA3E1加入了歐元(€)符號,之後所有 Windows 版本的 Code Page 950 也都有這個符號。
[编辑] 中國海字集
「中國海字集」是中國海公司所出品的繁體漢字造字檔。它本身雖然是一套商品,但中國海公司很少將之單獨販售,往往是與其他軟體一同銷售。例如:中國海字集就曾經與《漢書》、《輕鬆輸入法》等一同發售。由於它包括了不少社會上常見的用字、日文假名、和字等,加上曾與Office 97中文版一併發售,所以比起其他官方Big5延伸,更被台灣民眾所接受。香港部份BBS網絡在香港增补字符集未出現之前,一度以中國海字集為標準。
[编辑] 日和字集
「日和字集」乃一香港人開發的造字檔,以兼容香港增補字符集為賣點,為字集中仍沒函蓋的日本漢字和日本國字作增補,並附有倉頡、速成等輸入法作輔助。
[编辑] 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+不少漢字都去掉,更甚者放棄了倚天延伸字集的假名部分。於是,除了部分被強制使用的政府單位外,沒有多少人願意使用Big5E。
[编辑] Big5-2003
鑑於Big5不是一個官方標準,中推會決定編製一個Big5的定義,並把它放到官方編碼CNS 11643的附錄裡,正式成為官方標準的一部分。
在Big5-2003之中,收錄了所有在1984年Big5編碼的所有字元,另外再加入微軟CP950的歐元符號、倚天延伸字集的0xA3C0-0xA3E0、0xC6A1-0xC7F2、0xF9D6-0xF9FE的用字。Big5-2003沒有收錄行列輸入法特殊符號及0xC7F3-0xC875的俄語西里爾字母,理由是以CNS 11643沒有這些字符。除此之外,所有倚天延伸全部收錄。
相對於Big5-2003,最早沒有加上任何延伸的Big5則被稱為Big5-1984。
[编辑] 香港增補字符集
香港增補字符集(Hong Kong Supplementary Character Set, 簡稱HKSCS)是香港政府基於大五碼之上擴展的字符集標準,是現時香港的中文資訊交換內碼標準。香港增補字符集以前稱為《政府通用字庫》,本來只是香港政府內部統一使用的造字檔,有三千多字。但由於香港電腦業界不斷要求政府迎合本地需要,提出官方的字符集方案,以便與政府進行文件來往,於是香港政府便在1995年把這個內部使用的標準公開。到了1999年,此字集增加到四千多字,並改為現名。
此字符集由中文界面諮詢委員會管理,仍在不斷擴編之中。最新版本為2005年5月推出的 HKSCS-2004,收錄 4,941 個字符。字符集主要包括香港的地名、人名用漢字、粵語用字(包括粗言穢語在內,這是應警方及法庭需要記錄口供的需要)、異體字、小部份簡體字、平假名、片假名及俄語西里爾字母。
[编辑] 發展
由於各廠商及政府推出的Big5延伸,彼此互不兼容,造成亂碼問題。鑑於Unicode能正確地處理七萬多個漢字,近年的作業系統和應用程式(如蘋果電腦 Mac OS X 和以 Cocoa API 撰寫之程式、Microsoft Windows 2000及之後版本、Microsoft Office 2000及之後版本、Mozilla瀏覽器、Internet Explorer瀏覽器、Java 語言等等),已改用Unicode編碼。可惜現時仍有一些舊的軟件(如Visual Basic 6、部分Telnet或BBS軟件),未能支援Unicode編碼,故相信Big5缺字的問題仍會困擾用戶一段時間,直至所有程式都能改用Unicode為止。
[编辑] 参考文献
- ^ 大五碼普遍被認為包含13,053字,但在計算0xA259-0xA261的度量衡單位用字 (兙兛兞兝兡兣嗧瓩糎) ,再減去重收了兩次的「兀」(0xC94A)和「嗀」(0xDDFC)後,應為13,060字。
- ^ 來源參考:(中文)財團法人中文數位化技術推廣基金會——認識中文碼
- ^ 來源參考:(中文)朱邦復專欄——中文微電腦之歷史見証
- ^ 4.0 4.1 參考:(英文)perlop-Perl operators and precedence以及(中文)淺談許蓋功-中文衝碼問題
- Lunde, Ken(1999).CJKV Information Processing,First Edition,O'Reilly and Associates, Inc..ISBN 1-56592-224-7.
- (中文)《中文字碼 萬碼奔騰 一碼當先》作者:黃大一,永麒科技出版

