大五碼
大五碼(英語:,又稱為五大碼)是使用繁体中文(正體中文)社群中最常用的電腦漢字字符集標準,共收錄13,060個漢字[1]。
中文碼分為內碼及交換碼兩類,Big5屬中文內碼,知名的中文交換碼有CCCII、CNS11643。
Big5雖普及於台灣、香港、澳門等繁體中文區域,但長期以來並非當地的國家/地區標準或官方標準,而只是業界標準。倚天中文系統、Windows繁體中文版等主要作業系統的字符集都是以Big5為基準,但廠商又各自增加不同的造字與造字區,衍生成多種不同版本。
2003年,Big5收錄到CNS11643中文標準交換碼的附錄當中,取得了較正式的地位。這個最新版本稱為Big5-2003。
歷史及名稱
「大五碼」()是由台灣財團法人資訊工業策進會為五大中文套裝軟體所設計的中文共通內碼,在1983年12月完成公告[2][3],隔年3月,資訊工業策進會與臺灣13家廠商簽定「16位元個人電腦套裝軟體合作開發(BIG-5)計畫(五大中文套裝軟體)」[4],因為此中文內碼是為臺灣自行製作開發之「五大中文套裝軟體」所設計的,所以就稱為Big5中文內碼[5][6][7][8]。五大中文套裝軟體雖然並沒有如預期的取代國外的套裝軟體,但隨著採用Big5碼的國喬中文系統及倚天中文系統先後在台灣市場獲得成功,使得Big5碼深遠地影響正體中文電腦內碼,直至今日。「五大碼」的英文名稱「」後來被人按英文字序譯回中文,以致現在有「五大碼」和「大五碼」兩個中文名稱。
Big5碼的產生,是因為當時個人電腦沒有共通的內碼,導致廠商推出的中文應用軟體無法推廣,並且與IBM 5550、王安碼等內碼,彼此不能兼容;另一方面,台灣當時尚未推出中文編碼標準。在這樣的時空背景下,為了使台灣早日進入資訊時代,所採行的一個計畫;同時,這個計畫對於以台灣為核心的亞洲繁體漢字圈也產生了久遠的影響。
Big5產生前,研發中文電腦的朱邦復認為內碼字集應該廣納所有的正異體字,以顧及如戶政等應用上的需要,故在當時的內碼會議中,建議希望採用他的五萬多字的字庫。工程師認為雖其技術可行,但是三個位元組(超過兩個位元組)長度的內碼卻會造成英文螢幕畫面映射成中文畫面會發生文字無法對齊的問題,因為當時盛行之倚天中文系統畫面係以兩個位元組文字寬度映射成一個中文字圖樣,英文軟體中只要以兩個英文字寬度去顯示一個中文字,畫面就不會亂掉,造成中文系統業者偏愛二個位元組長度的內碼[9];此外以倉頡輸入碼壓縮成的內碼不具排序等功能,因此未被採用。1983年有人誣指朱邦復為共產黨,其研究成果更不可能獲採用。[10]
在Big5碼誕生後,大部分台灣的電腦軟體都使用了Big5碼,加上後來倚天中文系統的高度普及,使後來的微軟Windows 3.x等亦予以採用。雖然後來台灣還有各種想要取代Big5碼,像是倚天中文系統所推行的倚天碼、台北市電腦公會所推動的公會碼等,但是由於Big5字碼已沿用多年,因此在習慣不易改變的情況下,始終無法成為主流字碼。而台灣後來發展的國家標準CNS 11643中文標準交換碼由於非一般的內碼系統,是以交換使用為目的,受先天所限,必須使用至少三個位元組來表示一個漢字,所以普及率遠遠不及Big5碼。
在1990年代初期,當中國大陸的電郵和轉碼軟體還未普遍之時,在深圳的港商和台商公司亦曾經使用Big5系統,以方便與總部的文件交流、以及避免為中國的辦公室再寫一套不同內碼的系統。使用简体中文的社群,最常用的是中国的國標碼(GB 2312、GB 18030)和GBK。
除了台灣外,其他使用繁體漢字的地區,如香港(香港增補字符集)、澳門(澳門增補字符集),及使用繁體漢字的海外華人,都曾普遍使用Big5碼做為中文內碼及交換碼。
中文碼相關標準歷程
1983年 | 「通用漢字標準交換碼」試用版發行,包括13,053個字與441個符號,分為二個字面,先筆畫數,後部首序排列。
12月:Big-5大五碼,包括13,053個字與441個符號,字集與字序與交換碼試用版完全相同,僅字碼定義不同。 |
1984年 | 3月:臺灣資策會與其國內13家廠商簽定「五大中文套裝軟體」開發計畫,而「大五碼」即是為「五大中文套裝軟體」所設計之中文內碼。 |
1986年 | 國家標準「CNS 11643通用漢字標準交換碼」正式版發行,包括13,051個字(刪除2個重複字,調整20個字順序)與441個符號,其餘均與試用版相同。 |
1988年 | 公佈「通用漢字標準交換碼」-使用者加字區交換碼,即第十四字面,共6,148字。 |
1989年 | 再公佈使用者加字區交換碼(增編)157字。 |
1992年 | 國家標準「CNS 11643中文標準交換碼」新版發行,擴充第3-7字面並更換名稱,總共包括48,027個字與684個符號(增加部首和數字符號)。 |
1997年 | Big-5E大五碼擴充,同1984年版,包括13,053個字與441個符號,另於造字區定義3,954個較常使用的造字。 |
2002年 | 國際標準ISO 10646 / Unicode的中文版「CNS 14649廣用多八位元編碼字元集」,包括中、日、韓、越等20,902個漢字(現已擴充至十萬字左右),及全球使用的字符。 |
2008年 | 國家標準「CNS 11643中文標準交換碼」擴充版發行,增加了戶政用字與異體字等。 |
字節結構
Big5碼是一套雙位元組字符集,使用了雙八碼儲存方法,以兩個字節來安放一個字。第一個字節稱為「高位字節」,第二個字節稱為「低位字節」。
「高位字節」使用了0x81-0xFE,「低位字節」使用了0x40-0x7E,及0xA1-0xFE。在Big5的分區中:
0x8140-0xA0FE | 保留給使用者自定義字元(造字區) |
0xA140-0xA3BF | 標點符號、希臘字母及特殊符號, 包括在0xA259-0xA261,安放了九個計量用漢字:。 |
0xA3C0-0xA3FE | 保留。此區沒有開放作造字區用。 |
0xA440-0xC67E | 常用漢字(5401字),先按筆畫再按部首排序。 |
0xC6A1-0xC8FE | 保留給使用者自定義字元(造字區) |
0xC940-0xF9D5 | 次常用漢字(7652字),亦是先按筆畫再按部首排序。 |
0xF9D6-0xF9DC | 七個倚天外字集的擴充字,。 |
0xF9DD-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"等等。如果在字串中有這些特殊的轉義字元,會被程式或直譯器解釋為特殊用途。但是因為是中文的原因,故無法正確解釋為上面所述的行為,因此程式可能會忽略此轉義符號或是誤當作轉義符號而中斷執行。若此,就違反了使用者本來要當成中文字元一部份使用的本意。[11]
低位元字元與ASCII重疊的字元如下︰
@ A-Z [ \ ] ^ _ ` a-z { | } ~
在常用字如「」(0xA55C)、「」(0xB35C)、「」(0xBB5C)、「」(0xA87C)中時常出現,造成了許多軟體無法正確處理以Big5編碼的字串或文件。這個問題被戲謔性地人名化,稱為「」或「」(這三個字都有這種問題)。
一般的解決方法,是額外增加“\”的字元,因為“\\”會被解釋為“\”,所以“成功\因素”這個字串就能無誤地被程式當作“成功因素”的字串來處理。但是額外的困擾是,有些輸出功能並不會把“\”當作特殊字元看待,所以有些程式或網頁就會錯誤地常常出現在「許功蓋」這些字後面多了“\”。[11]
與畫線字元相衝
Big5碼字元的首位元組會與DOS代碼頁437的畫線字元相衝而產生亂碼。
例如
┌───────┐ │維基百科│ └───────┘
當中的中文字如以Big5碼儲存,顯示時會變成:
┌────────┐ 竟�穧坌鮈� └────────┘
私人造字區
在倚天中文系統,以及後來的Windows 3.1、95及98中,定義四個私人造字區範圍:0xFA40-0xFEFE、0x8E40-0xA0FE、0x8140-0x8DFE、0xC6A1-0xC8FE。
私人造字區的原意,是供使用者加入本來在編碼表中缺少的字元,但當每個使用者都在不同的地方加上不同的字元後,當交換資料時,對方便難以知道某一個編碼究竟想表達什麼字。
影響
自中文電腦流行後,由於很多日常用字被視為異體字而未收錄。很多人,甚至電視台的字幕、報紙的用字習慣都被改變。
例如中華民國教育部視「」為「」的異體字,故沒有收錄「」字。康熙字典中的一些部首用字(如「」、「」、「」、「」等)、常見的人名用字(如「」(中華民國前行政院長游錫堃)、「」(中華民國前監察院院長、前財政部長王建煊)、「」(歌手張栢芝)、「」(歌手吳青峯、林峯)、「」(歌手陶喆)等)、「」(香港名人李曾超羣)等),雖受中文社會廣泛採用,也沒有收錄到Big5。
另外像臺灣的「廍」,臺語指製糖所,常見於鄉間地名。但由於大五碼未收此字,也被「廓」、「部」代替。其他未收錄的地名用字,如「磘」,也被「瑤」、「嗂」代替。
在互聯網上,經常能見到把游錫堃、王建煊、張栢芝、陶喆等名字,寫成為「游錫方方土」、「王建火宣」、「張木百芝」和「陶吉吉」等。電視上日本動畫的中文字幕中也會看到像“”()這樣的字。
Big5延伸
由於Big5碼內的一萬多個字,只是根據中華民國教育部頒布的《常用國字標準字體表》、《次常用國字標準字體表》等用字匯編而成,並沒有考慮社會上流通的人名、地名用字、方言用字、化學及生物科学等用字,亦沒有放入日語平假名及片假名字母。
所以在市面上支援Big5碼的軟件,有不少都自行在原本的編碼外,添加一些符號及用字。
倚天Big5延伸
倚天中文系統為與IBM5550碼相容,在Big5碼添加了以下字元,稱為倚天擴充字集:
- 在0xA3C0-0xA3E0,添加了33個控制字符圖象。
- 罕用符號區。在0xC6A1-0xC8D3,添加了圓形1-10、括號1-10、小寫羅馬數字(ⅰ、ⅱ、ⅲ……ⅸ、ⅹ)等章節符號、一些部首()及筆畫結構()、日語平假名、日語片假名、日語常用符號,以及俄語使用的西里爾字母,此外還有行列40輸入法使用的鍵名。
- 在0xF9D6-0xF9FE,添加了7個倚天擴充字()和34個製表符號和區塊元件。
00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 0A | 0B | 0C | 0D | 0E | 0F | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
C6A0 | ① | ② | ③ | ④ | ⑤ | ⑥ | ⑦ | ⑧ | ⑨ | ⑩ | ⑴ | ⑵ | ⑶ | ⑷ | ⑸ | |
C6B0 | ⑹ | ⑺ | ⑻ | ⑼ | ⑽ | ⅰ | ⅱ | ⅲ | ⅳ | ⅴ | ⅵ | ⅶ | ⅷ | ⅸ | ⅹ | ⼂ |
C6C0 | ⼃ | ⼅ | ⼇ | ⼌ | ⼍ | ⼎ | ⼓ | ⼖ | ⼙ | ⼛ | ⼢ | ⼧ | ⼮ | ⼵ | ||
C6D0 | ⼹ | ⼺ | ⽁ | ⽧ | ⽨ | ⾡ | ¨ | ˆ | ヽ | ヾ | ゝ | ゞ | 〃 | 仝 | ||
C6E0 | 々 | 〆 | 〇 | ー | [ | ] | ✽ | ぁ | あ | ぃ | い | ぅ | う | ぇ | え | ぉ |
C6F0 | お | か | が | き | ぎ | く | ぐ | け | げ | こ | ご | さ | ざ | し | じ | |
C740 | す | ず | せ | ぜ | そ | ぞ | た | だ | ち | ぢ | っ | つ | づ | て | で | と |
C750 | ど | な | に | ぬ | ね | の | は | ば | ぱ | ひ | び | ぴ | ふ | ぶ | ぷ | へ |
C760 | べ | ぺ | ほ | ぼ | ぽ | ま | み | む | め | も | ゃ | や | ゅ | ゆ | ょ | よ |
C770 | ら | り | る | れ | ろ | ゎ | わ | ゐ | ゑ | を | ん | ァ | ア | ィ | イ | |
C7A0 | ゥ | ウ | ェ | エ | ォ | オ | カ | ガ | キ | ギ | ク | グ | ケ | ゲ | コ | |
C7B0 | ゴ | サ | ザ | シ | ジ | ス | ズ | セ | ゼ | ソ | ゾ | タ | ダ | チ | ヂ | ッ |
C7C0 | ツ | ヅ | テ | デ | ト | ド | ナ | ニ | ヌ | ネ | ノ | ハ | バ | パ | ヒ | ビ |
C7D0 | ピ | フ | ブ | プ | ヘ | ベ | ペ | ホ | ボ | ポ | マ | ミ | ム | メ | モ | ャ |
C7E0 | ヤ | ュ | ユ | ョ | ヨ | ラ | リ | ル | レ | ロ | ヮ | ワ | ヰ | ヱ | ヲ | ン |
C7F0 | ヴ | ヵ | ヶ | А | Б | В | Г | Д | Е | Ё | Ж | З | И | Й | К | |
C840 | Л | М | Н | О | П | Р | С | Т | У | Ф | Х | Ц | Ч | Ш | Щ | Ъ |
C850 | Ы | Ь | Э | Ю | Я | а | б | в | г | д | е | ё | ж | з | и | й |
C860 | к | л | м | н | о | п | р | с | т | у | ф | х | ц | ч | ш | щ |
C870 | ъ | ы | ь | э | ю | я | ⇧ | ↸ | ↹ | ㇏ | 𠃌 | 乚 | 𠂊 | 刂 | 䒑 | |
C8A0 | 龰 | 龱 | 𧘇 | 1- | 58 | 3⁹₈ | 3- | 3²₁ | 4- | 5- | 6- | 81 | 7- | 8- | ||
C8B0 | 9- | 7⁰₈ | 6⁰₇ | 9²₁ | 01 | 1²₁ | 41 | 2- | 5²₁ | 71 | 4⁹₈ | 2²₁ | 2⁹₈ | 6²₁ | 1⁰₈ | 1⁶₃ |
C8C0 | 2⁵₃ | 3⁶₃ | 4⁶₃ | 5⁶₃ | 6⁶₃ | 7⁶₃ | 86 | 9⁶₅ | 0⁶₃ | 88 | 9⁹₈ | 08 | 0- | ¬ | ¦ | ' |
C8D0 | " | ㈱ | № | ℡ | ||||||||||||
F9D0 | ╔ | ╦ | ╗ | |||||||||||||
F9E0 | ╠ | ╬ | ╣ | ╚ | ╩ | ╝ | ╒ | ╤ | ╕ | ╞ | ╪ | ╡ | ╘ | ╧ | ╛ | ╓ |
F9F0 | ╥ | ╖ | ╟ | ╫ | ╢ | ╙ | ╨ | ╜ | ║ | ═ | ╭ | ╮ | ╰ | ╯ | ▓ |
這個延伸有時稱為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網絡在香港增补字符集未出現之前,一度以中國海字集為標準。
日和字集
「日和字集」乃香港人內木一郎和阿烈開發的True Type Eudc造字檔,以兼容香港增補字符集為賣點,增補字集中仍沒涵蓋的日語假名、日本漢字和日本國字,有細明體、標楷體、中黑體等配合Windows 95、98、NT等作業系統字型的字款,並附有倉頡、速成等輸入法作輔助,以及把字集文檔轉換至日語編碼的轉碼器工具。
Unicode補完計畫
「Unicode補完計畫」前稱「BIG5 Extension」,透過修改Microsoft Windows及Mozilla的編碼表,從而使用者能在網上傳遞及交換文字。
有鑑於「中國海字集」的成功,「Unicode補完計畫」第二版採用了「中國海字集」原有的造字,再加上「中國海字集」所欠的部分簡體中文字及香港粵語用字,建成一個能在Big5及Unicode之間轉換的編碼表;該計劃目前已推出了64位元測試版。
中華民國教育部造字檔
中華民國教育部有它本身的一套造字檔,主要給部門內使用,亦於教育部的網路字典使用。
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編碼的所有字元,另外再加入微軟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年,此字集增加到四千多字,並改為現名。
此字符集由中文界面諮詢委員會管理,仍在不斷擴編之中。字符集主要包括香港地名、人名用漢字、粵語用字(包括粗言穢語在內,這是應警方及法庭需要記錄口供的需要)、異體字、小部份簡體字、平假名、片假名及俄語西里爾字母。
發展
由於各廠商及政府推出的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字。
- 來源參考:(中文)資策會大事紀要,1983年 的存檔,存档日期2010-11-04.
- 來源參考:(中文)資策會大事紀要 的存檔,存档日期2010-11-04.
- 來源參考:(中文)資策會大事紀要,1984年 的存檔,存档日期2010-11-04.
- 來源參考:(中文)行政院主計處電子處理資料中心中文全字庫——中文碼介紹-BIG-5碼介紹 页面存档备份,存于
- 來源參考:(中文)數位雜談 - 中文的電腦或電腦的中文?,諶家雄 的存檔,存档日期2007-02-22.
- 來源參考:(中文)CMEX財團法人中文數位化技術推廣基金會 - 認識中文碼:九、Big5和Big5E
- 來源參考:(中文)與文字共舞___中文數位化發展簡介
- 來源參考:倚天中文系統、國喬中文系統
- 來源參考:(中文)朱邦復專欄——中文微電腦之歷史見証 页面存档备份,存于
- 參考:(英文)perlop-Perl operators and precedence 的存檔,存档日期2007-07-04.以及(中文)淺談許蓋功-中文衝碼問題 的存檔,存档日期2007-09-27.
- Lunde, Ken. First Edition. O'Reilly and Associates, Inc. 1999. ISBN 978-1-56592-224-2.
- (中文)《中文字碼 萬碼奔騰 一碼當先》作者:黃大一,永麒科技出版
外部連結
- Big5字符集簡介
- Big5編碼系統
- Big5內碼表
- BIG5编码查询
- CCCII中文資訊交換碼
- CNS 11643國家標準中文交換碼
- ICU Converter Explorer (Big5)
- Mozilla系列與Big5中文字碼
- RFC1922附錄中含Big5和CNS11643相轉資訊
- 中文數位化技術推廣基金會 页面存档备份,存于
- 微软CP950编码表
- 香港特區政府:香港增補字符集
- 補完計畫跟Big5 2003相異處(扣掉保留區、造字區)