複製鏈接
請複製以下鏈接發送給好友

大五碼

鎖定
Big5,又稱為大五碼五大碼,是使用繁體中文(正體中文)社區中最常用的電腦漢字字符集標準,共收錄13,060個漢字。
中文名
大五碼
外文名
Big5
別    名
五大碼
屬    性
繁體字編碼方案

大五碼簡介

Big5,又稱為大五碼五大碼,是使用繁體中文(正體中文)社區中最常用的電腦漢字字符集標準,共收錄13,060個漢字
中文碼分為內碼交換碼兩類,Big5屬中文內碼,知名的中文交換碼有CCCII、CNS11643。
Big5雖普及於台灣、香港與澳門等繁體中文通行區,但長期以來並非當地的國家/地區標準或官方標準,而只是業界標準。倚天中文系統、Windows繁體中文版等主要系統的字符集都是以Big5為基準,但廠商又各自增加不同的造字與造字區,派生成多種不同版本。
2003年,Big5收錄到CNS11643中文標準交換碼的附錄當中,獲取了較正式的地位。這個最新版本稱為Big5-2003 [1] 

大五碼歷史及名稱

“大五碼”(Big5)是由台灣財團法人信息產業策進會為五大中文套裝軟件所設計的中文共通內碼,在1983年12月完成公告,隔年3月,信息產業策進會與台灣13家廠商簽定“16位個人電腦套裝軟件合作開發(BIG-5)項目(五大中文套裝軟件)”,因為此中文內碼是為台灣自行製作開發之“五大中文套裝軟件”所設計的,所以就稱為Big5中文內碼。五大中文套裝軟件雖然並沒有如預期的取代國外的套裝軟件,但隨着採用Big5碼的國喬中文系統及倚天中文系統先後在台灣市場獲得成功,使得Big5碼深遠地影響繁體中文電腦內碼,直至今日。“五大碼”的英文名稱“Big5”後來被人按英文字序譯回中文,以致現在有“五大碼”和“大五碼”兩個中文名稱。
Big5碼的產生,是因為當時個人電腦沒有共通的內碼,導致廠商推出的中文應用軟件無法推廣,並且與IBM 5550、王安碼等內碼,彼此不能兼容;另一方面,台灣當時尚未推出中文編碼標準。在這樣的時空背景下,為了使台灣早日進入信息時代,所採行的一個項目;同時,這個項目對於以台灣為核心的亞洲繁體漢字圈也產生了久遠的影響。
Big5產生前,研發中文電腦的朱邦復認為內碼字集應該廣納所有的正異體字,以顧及如户政等應用上的需要,故在當時的內碼會議中,建議希望採用他的五萬多字的字庫。工程師認為雖其技術可行,但是三個字節(超過兩個字節)長度的內碼卻會造成英文顯示屏畫面映射成中文畫面會發生文字無法對齊的問題,因為當時盛行之倚天中文系統畫面系以兩個字節文字寬度映射成一箇中文字圖樣,英文軟件中只要以兩個英文字寬度去顯示一箇中文字,畫面就不會亂掉,造成中文系統業者偏愛二個字節長度的內碼;此外以倉頡輸入碼壓縮成的內碼不具排序等功能,因此未被採用。1983年有人誣指朱邦復為共產黨,其研究成果更不可能獲採用。
在Big5碼誕生後,大部分台灣的電腦軟件都使用了Big5碼,加上後來倚天中文系統的高度普及,使後來的微軟Windows 3.x等亦予以採用。雖然後來台灣還有各種想要取代Big5碼,像是倚天中文系統所推行的倚天碼、台北市電腦公會所推動的公會碼等,但是由於Big5字碼已沿用多年,因此在習慣不易改變的情況下,始終無法成為主流字碼。而台灣後來發展的國家標準CNS 11643中文標準交換碼由於非一般的內碼系統,是以交換使用為目的,受先天所限,必須使用至少三個字節來表示一個漢字,所以普及率遠遠不及Big5碼。
在1990年代初期,當中國大陸的電子郵件和轉碼軟件還未普遍之時,在深圳的港商和台商公司亦曾經使用Big5系統,以方便與總部的文件交流、以及避免為大陸的辦公室再寫一套不同內碼的系統。使用簡體中文的社區,最常用的是GB 2312GBK及其後續的國標碼(GB 18030)。
除了台灣外,其他使用繁體漢字的地區,如香港香港增補字符集)、澳門(澳門增補字符集),及使用繁體漢字的海外華人,都曾普遍使用Big5碼做為中文內碼及交換碼。 [2] 

大五碼字節結構

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])。此外“十”、“卅”也在符號區又重複了一次,在檢索系統中常會造成查詢不到字。

大五碼衝碼問題

因為低比特字符中包含了編程語言shellscript中,字符串或命令常會用到的特殊字符,例如0x5C“\”、0x7C“|”等。“\”在許多用途的字符串中是當作轉義符號又稱為轉義字符,例如\n(換行)、\r(歸位)、\t(tab)、\\(\本身符號)、\"(引號)等等。而“|”在UNIX操作系統中大多當作命令管線的使用,如"ls -la | more"等等。如果在字符串中有這些特殊的轉義字符,會被程序解釋器解釋為特殊用途。但是因為是中文的原因,故無法正確解釋為上面所述的行為,因此程序可能會忽略此轉義符號或是中斷運行。若此,就違反了用户本來要當成中文字符一部分使用的本意。
低比特字符與ASCII重疊的字符如下︰
@ A-Z [ \ ] ^ _ ` a-z { | } ~ 
在常用字如“功”(0xA55C)、“許”(0xB35C)、“蓋”(0xBB5C)、“育”(0xA87C)中時常出現,造成了許多軟件無法正確處理以Big5編碼的字符串或文件。這個問題被戲謔性地人名化,稱為“許功蓋”或“許蓋功”(這三個字都有這種問題)。
一般的解決方法,是額外增加“\”的字符,因為“\\”會被解釋為“\”,所以“成功\因素”這個字符串就能無誤地被程序當作“成功因素”的字符串來處理。但是額外的困擾是,有些輸出功能並不會把“\”當作特殊字符看待,所以有些程序或網頁就會錯誤地常常出現在“許功蓋”這些字後面多了“\”。
與畫線字符相沖
Big5碼字符的首字節會與DOS代碼頁437的畫線字符相沖而產生亂碼。

大五碼私人造字區

倚天中文系統,以及後來的Windows 3.19598中,定義四個私人造字區範圍:0xFA40-0xFEFE、0x8E40-0xA0FE、0x8140-0x8DFE、0xC6A1-0xC8FE。
私人造字區的原意,是供用户加入本來在編碼表中缺少的字符,但當每個用户都在不同的地方加上不同的字符後,當交換數據時,對方便難以知道某一個編碼究竟想表達什麼字。 [2] 

大五碼發展

由於各廠商及政府推出的Big5延伸,彼此互不兼容,造成亂碼問題。鑑於Unicode能正確地處理七萬多個漢字,近年的操作系統和應用程序(如蘋果電腦Mac OS X和以CocoaAPI撰寫之程序、MicrosoftWindows 2000及之後版本、Microsoft Office2000及之後版本、Mozilla瀏覽器、Internet Explorer瀏覽器、Java語言等等),已改用Unicode編碼。可惜現時仍有一些舊的軟件(如Visual Basic6、部分TelnetBBS軟件),未能支持Unicode編碼,故相信Big5缺字的問題仍會困擾用户一段時間,直至所有程序都能改用Unicode為止。 [2] 

大五碼輸入方法

  • VimIM在Vim環境中,可以直接鍵入十進制或十六進制碼。既不需要引導輸入法,也不需要碼錶。 [2] 

大五碼參看

  • CCCII
  • GB 18030《信息交換用漢字編碼字符集基本集的擴充》
  • 中日韓統一表意文字
  • 中文亂碼
  • 國家標準中文交換碼(CNS11643)
參考資料
  • 1.    朱江. Internet上的常用漢字編碼及其顯示和轉換[J]. 情報學報, 1997, 16(3):184-188.
  • 2.    Lunde, Ken (1999). CJKV Information Processing (First ed.). O'Reilly and Associates, Inc. ISBN 1-56592-224-7.