大五碼(Big5),又稱為五大碼,是使用繁體中文(正體中文)社群中最常用的電腦漢字字符集標準,共收錄13,060個中文字,其中有二字為重覆編碼。
正文
Big5常用于臺灣、香港特別行政區和澳門等使用繁體中文的地區。在1990年代初期,當中華人民共和國的電郵和轉碼軟件還未普遍之時,在深圳的港商和臺商公司亦曾經使用Big5系統,以方便與總部的文件交流、以及避免為中國的辦公室再寫一套不同內碼的系統。在使用簡體中文社群,最常用的是GB 2312、GBK及其后續的國標碼(GB 18030)。在使用簡體中文字社群,最常用的是GB 2312及其後續的國標標準。在Big5碼誕生後,大部分臺灣的電腦軟體都使用了Big5碼,加上倚天中文系統的普及,使後來的MicrosoftWindows 3.1等亦與以採用。臺灣當局爾後發展的國家標準中文交換碼(CNS 11643)由於先天所限,必須使用3字節來表示一個中文字,與現行英語軟件欠缺相容,所以普及率遠遠不及Big5碼。
歷史
此五間公司為:宏碁、神通、佳佳、零壹及大眾。“五大碼”的英文名稱“Big5”后來被人按英文字序譯回中文,以致現在有“五大碼”和“大五碼”兩個中文名稱。
Big5碼的產生,是因為當時臺灣不同廠商各自推出不同的編碼,如IBM 5550、王安碼等,彼此不能兼容;在這樣的時空背景下,為了使臺灣早日進入資訊時代,所采行的一個計劃;同時,這個計劃對于以臺灣為核心的亞洲繁體漢字圈也產生了久遠的影響。
在Big5碼誕生后,大部分臺灣的電腦軟件都使用了Big5碼,加上后來倚天中文系統的高度普及,使后來的微軟 Windows 3.x等亦予以采用。雖然后來臺灣還有各種想要取代Big5碼,但是由于Big5字碼已沿用多年,因此在習慣不易改變的情況下,始終無法成為主流字碼。而臺灣以后發展的國家標準中文交換碼(CNS 11643)由于先天所限,必須使用3字節來表示一個漢字,與現行英語軟件欠缺兼容,所以普及率遠遠不及Big5碼。
現在,除了臺灣外,其他使用繁體漢字的地區,如香港特別行政區、澳門,還有海外華人,都普遍使用Big5碼。這已經成為繁體中文顯示的標準格式。
發展
由于各廠商及政府推出的Big5延伸,彼此互不兼容,造成亂碼問題。鑒于Unicode能正確地處理七萬多個漢字,近年的操作系統和應用程序(如蘋果電腦Mac OS X 和以 Cocoa API 撰
寫之程序、Microsoft Windows 2000及之后版本、Microsoft Office 2000及之后版本、Mozilla瀏覽器、Internet Explorer瀏覽器、Java 語言等等),已改用Unicode編碼。可惜現時仍有一些舊的軟件(如Visual Basic6、部分Telnet或BBS軟件),未能支援Unicode編碼,故相信Big5缺字的問題仍會困擾用戶一段時間,直至所有程序都能改用Unicode為止。
字節結構
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"等等。如果在字串中有這些特殊的轉義字符,會被程式或直譯器解釋為特殊用途。但是因為是中文的原因,故無法正確解釋為上面所述的行為,因此程式可能會忽略此轉義符號或是中斷執行。若此,就違反了使用者本來要當成中文字符一部份使用的本意。
在常用字如“功”(0xA55C)、“許”(0xB35C)、“蓋”(0xBB5C)、“育”(0xA87C)中時常出現,造成了許多軟件無法正確處理以Big5編碼的字串或文件。這個問題被戲謔性地人名化,稱為“許功蓋”或“許蓋功”(這三個字都有這種問題)。
一般的解決方法,是額外增加“\”的字符,因為“\\”會被解釋為“\”,所以“成功\因素”這個字串就能無誤地被程式當作“成功因素”的字串來處理。但是額外的困擾是,有些輸出功能并不會把“\”當作特殊字符看待,所以有些程式或網頁就會錯誤地常常出現在“許功蓋”這些字后面多了“\”。
私人造字區:在倚天中文系統,以及后來的Windows 3.1、95及98中,定義了四個私人造字區范圍:0xFA40-0xFEFE、0x8E40-0xA0FE、0x8140-0x8DFE、0xC6A1-0xC8FE。
私人造字區的原意,是供使用者加入本來在編碼表中缺少的字符,但當每個使用者都在不同的地方加上不同的字符后,當交換資料時,對方便難以知道某一個編碼究竟想表達什么字。
影響
自中文電腦流行后,由于很多日常用字被視為異體字而未收錄。很多人,甚至電視臺的字幕、報紙的用字習慣都被改變。
例如臺灣地區教育事務主管部門視“著”為“著”的異體字,故沒有收錄“著”字。康熙字典中的一些部首用字(如“亠”、“疒”、“”、“癶”等)、常見的人名用字(如“”(前臺灣地區行政機構負責人游錫堃)、“煊”(臺灣監察機構負責人、前地區經濟事務主管部門負責人王建煊)、“”(歌手張柏芝)、“”(歌手陶喆)等),雖被中文社會廣泛采用,也沒有收錄到Big5之中。
在互聯網上,實在不難看到人們把游錫堃、王建煊、陶喆等名字,寫成為“游錫方方土”、“王建火宣”和“陶吉吉”等寫法。電視上日本東京動漫展覽會的中文字幕中也會看到像“木堅”這樣的字。
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推出之前市場占有率最高的中文系統,此延伸是各種非官方延伸當中最重要的一個。
在后期版本的倚天中文系統中,更加入了一些圖案和簡體中文字,但未被廣泛接受。
微軟CodePage950:
在Windows的CodePage950(簡稱CP950)之中,只添加了上述0xF9D6-0xF9FE的倚天擴充字及表格符號,并沒有加入日語假名字母等其他延伸,對不少使用MicrosoftWindows的用者帶來困擾。
在Windows ME之中,微軟首度在0xA3E1加入了歐元(€)符號,之后所有Windows版本的CodePage950也都有這個符號。
中國海字集:“中國海字集”是中國海有限公司(1990/09/17-2005/12/02)(已解散)的商業電腦字型產品。其特點是在加入大五碼以外的造字,加入一些常用但大五碼(BIG5)中沒有收進的字,標點及日語等5300多個,以彌補大五碼的不足。中國海字集本是中國海公司另一套產品輕松輸入法的衍生產品,以彌補大五碼字不夠無法輸入的缺憾,因此中國海字集通常附著“輕松輸入法”一同銷售,但中國海字型的也有單獨售賣或是包含在中國海的其它產品中。
dos:中國海字集最初推出之時,是以“體驗版”的形式在臺灣的BBS上供用戶下載其16×15字型作試驗。由于用戶反應十分好,所以后來委托棋峰資訊發行《中國海字集》一書,連同24×24字型及輕松輸入法體驗版發售。有關字型只適合當時最流行的中文系統,主要是倚天中文系統使用。
Windows:1994年,微軟推出繁體中文Windows 3.1。由于這個版本開始采用TrueType字體技術,使字型比非Windows的點陣字體美觀得多。但是由于中國海公司的研發進度嚴重落后,因此這段期間中國海公司一直沒有新產品推出。當時外界有一套適用于Windows3.1的外字檔案,是熱心網友自行開發后上傳到網上,質量甚至比往后中國海推出的更好。
直至1997年,中國海推出Windows3.1版本的輕松輸入法及Windows 95使用的輕松輸入法EZ2000,當中附帶著向TrueType版本的中國海字集。更在Office97中,附帶著輕松輸入法的體驗版,由于能夠顯示及輸入如日語及一些特別標點,因此大受歡迎,使得中國海進入最輝煌的時期。
可惜的是,在2000年的時候,Windows 2000的推出,一方面Windows2000已經采用Unicode,要輸入像日文已經沒有Windows 98,ME那么困難,另一方面中國海一直無法推出支援Windows2000的輕松輸入法。中國海公司曾經釋出了免費的中國海字集,供大眾使用,但為時已晚;當2001年推出支援Windows2000的輕松輸入法銷售并不理想后,中國海公司亦告結束。
日和字集:“日和字集”乃一香港人開發的造字檔,以兼容香港增補字符集為賣點,為字集中仍沒函蓋的日本漢字和日本國字作增補,并附有倉頡、速成等輸入法作輔助。
Unicode補完計劃:Unicode補完計劃(官方網站使用的識別系統用字是Unicode補完計畫)是臺灣電腦使用者針對大五碼(Big-5)延伸的紊亂,以及微軟CodePage950(MicrosoftWindows內建的Big-5轉碼表)未收錄某些常用字(又稱缺字問題)以及缺乏對于倚天、中國海字集延伸中的簡體字、日語假名與漢字支援等問題,所采取的其中一種解決方案(參看大五碼#影響)。透過對CodePage950的修改,使得原始采用簡體中文或日語的內容,在復制至ANSI架構的程式時能轉換為Unicode補完計劃字集下的對應字符,而不會造成缺字的問題(具體字符請參看字符的來源)。它是一個自由軟件。
要留意的是“Unicode補完計劃”不等于Unicode。當你看見有人說“我安裝了Unicode”,通常是他把“Unicode補完計劃”和Unicode搞混了。
“Unicode補完計劃”也不是用來解決軟件顯示亂碼的問題。電腦內要有相關的字形(例如支援整個Unicode漢字的字形),才能在電腦顯示器看到。因為“Unicode補完計劃”只包含了編碼轉換表,并不包括字形在內。而一些日語游戲裝在Windows XP所出現的亂碼問題,應使用MicrosoftAppLocale內碼轉換器等程式去作內部轉換。
歷史:
2001年9月:Unicode計劃1.0版發表。支援日文假名。
2001年10月:Unicode計劃2.0版發表。支援第一水平漢字單向對應。
2002年4月:中文化聯盟發表Big5Extension擴充規格。一口氣支援大量漢字。
2002年5月:Big5Extension擴充規格與Unicode計劃同意整合。
2002年6月:有鑒于Big5Extension易與中推會的Big5E名稱混淆,正式決定統一以Unicode計劃作為名稱,由中文化聯盟發布。
2006年2月:FireFox2采用Unicode補完計劃做為BIG5單向轉換到UNICODE的字碼表,因此FireFox2/3可顯示BIG5碼日語假名。而同時期的IE6/7至今仍無法顯示BIG5碼日文假名。
官方Big5延伸:臺灣地區教育事務主管部門造字檔:臺灣地區教育事務主管部門有它本身的一套造字檔,主要給部門內使用,亦有于臺灣地區教育事務主管部門的網上字典使用。
臺灣農委會常用中文外字集:臺灣地區行政管理機構制定了一套有133個漢字的造字檔,其中有84個是魚字部漢字、7個是鳥字部漢字。
Big5+:中文數位化技術推廣委員會(中推會)在1997年推出Big5+,使用了兩萬多碼位,納入了Unicode1.1下所有漢字。由于編碼使用到的范圍超過原先Big5定義(Big5+使用了高字節0x81-0xFE,低字節0x40-0x7E、0x80-0xFE),無法安裝在MicrosoftWindows上,現幾乎無人使用。
Big-5E:為了使Windows使用者可以使用造字檔,臺灣地區行政管理機構委托中推會再次推出一個補充字集Big-5E(與Big5+并不兼容),共收3954字。它把Big5+不少漢字都去掉,更甚者放棄了倚天延伸字集的假名部分。于是,除了部分被強制使用的政府單位外,沒有多少人愿意使用Big5E。
Big5-2003:鑒于Big5不是一個官方標準,中推會決定編制一個Big5的定義,并把它放到官方編碼CNS11643的附錄里,正式成為官方標準的一部分。
在Big5-2003之中,收錄了所有在1984年Big5編碼的所有字符,另外再加入微軟CP950的歐元符號、倚天延伸字集的0xA3C0-0xA3E0、0xC6A1-0xC7F2、0xF9D6-0xF9FE的用字。Big5-2003沒有收錄行列輸入法特殊符號及0xC7F3-0xC875的俄語西里爾字母,理由是以CNS11643沒有這些字符。除此之外,所有倚天延伸全部收錄。
相對于Big5-2003,最早沒有加上任何延伸的Big5則被稱為Big5-1984。
香港特別行政區增補字符集:是香港政府基于繁體中文電腦操作環境中最流行的大五碼(Big-5)之上擴展的字符集標準,是現時香港的中文資訊交換內碼標準。香港增補字符集以前稱為《政府通用字庫》(GovernmentCommonCharacterSet,簡稱GCCS),本來只是香港政府內部統一使用的造字檔,有三千多字。但由于香港電腦業界不斷要求政府迎合本地需要,提出官方的字符集方案,以便與政府進行文件來往,于是香港政府便在1995年把這個內部使用的標準公開。到了1999年,此字集增加到四千多字,并改為現名。
字符集所收羅的字,主要包括香港特別行政區的地名、人名用漢字、粵語漢字及異體字,也有小部份簡體字。除此之外,此字符集亦把倚天中文系統收錄的日語平假名、片假名及俄語字母包括在內。此字符集由中文界面咨詢委員會管理,仍在不斷擴編之中。最新版本為2005年5月推出的HKSCS-2004,收錄4,941個字符。
字符分類:在HKSCS-2004版本,漢字字符共4500個,其中3353字可在大型的字典(如《漢語大字典》)中查到,包括簡化字、異體字、日語漢字等。其余在各大中文字典中查不到的字中,有粵語方言字(有些可在方言字典及學術著作中查到)、人名、公司名、地方名、變形部首、附形、訛字。有些字來自入境事務處、公司注冊處、稅務局、地政總理各國事務衙門建筑遺存。
各類符號共441個,有漢字筆形、漢語拼音字母、國際音標符號、漢字符件、畫表符號、日本平假名、片假名等。
香港增補字符集在2005年才有畫數、部首、粵音等資料給用戶參考,還說明方便檢索,而非作為規范標準。(漢字的部首在不同的字典中,歸部也不盡相同)
編碼和Big-5的關系:香港增補字符集當初因為是補充Big-5的收字不足,使用其外字區而發展的,所以受制于Big-5的編碼架構,外字的總數最多只能到6217個(每區塊157字,有39區塊半)。除去已用碼位,剩下千余個碼位,其中有部分會保留給用戶造字。
早期的倚天中文系統、國喬中文系統等對造字缺乏管理,而又沒有文字專家的審定,因此當時造字很是混亂,有些甚至可能只是臨時使用的“錯字”(尋遍各大字典、專書也查不到的字,也作幽靈漢字);制作這些中文系統的廠商又對字形、字體缺乏認識,有些字會因為字體不同而字形稍有差別,分別編進了兩個碼位中。又有同一字有系統區及造字區兩個碼位,有些聯綿詞只收其一不收其二;這個問題帶到了政府通用字庫和香港特別行政區增補字符集中,字集因要反向兼容而跳過了一些碼位。
Big-5原來的編碼,只有漢字、標點、注音符號等字符及少數圖形,后來經過臺灣廠商的增收,多了7個“倚天字”(即碁、銹、裏、墻、恒、粧、嫺)及日語的假名,最后這批字符又被香港增補字符集收入。
香港增補字符集所使用的Big-5的外字區分幾個區段:
“造字區一”(FA40—FEFE):早期的GCCS字符集已經填滿這一段。
“造字區二”(C6A1—C8FE):倚天用了這段來放日文假名等符號。這些符號在HKSCS1999年的版本被收納。
“造字區三”(8140—A0FE):香港增補字符集把這段開頭的(8140—84FE)保留給用戶,新增的字符只用其余的碼位。“廠商造字區”(F9D6—F9FE):這段開始的七個碼位用來存放裏、恒等“倚天字”,之后的碼位被微軟的繁體中文Windows用來存放制表符號。后來HKSCS1999年版本將之全部收納。
可是一般提及HKSCS的文件,包括來自香港特別行政區政府的,都沒有注明HKSCS以外的一般繁體字編碼(即是Big-5本身)使用哪個版本。Big-5在2003年前就只有一個版本,不會造成混淆,但HKSCS-2004的文件仍沒有指定Big-5部份是2003年之后還是之前的版本,雖然到目前為止并沒有任何系統使用Big5-2003。
相關詞條
參考資料
中文數位化技術推廣基金會
CNS 11643 國家標準中文交換碼
CCCII 中文信息交換碼
ICU Converter Explorer (Big5)
香港特區政府:香港增補字符集
Big5字符集簡介
Big-5 編碼系統
參考資料 >