Big-5 編碼系統

Big-5, 或謂五大碼, 是在一九八五年左右由資策會發布的一個中國字編碼系統. 事實上, 至今我仍不明白當時的內幕. 是誰負責選字, 根據了什麼基礎選的字? 誰負責定義字碼的配置, 誰負責校對? 為什麼取了這樣一個名字, 又為什麼政府當局沒有及時發布一個國家標準碼? 這些, 對我來說, 都還是一片謎霧. 眾說紛紜的故事很多, 但是沒有一個是我可以肯定的. 不難讓我懷疑, 這樣一件事, 當年是慎重處理的呢, 還是如兒戲般碰巧決定的? 如果是慎重處理的, 想必該留下隻字片語的文獻記錄吧? 在哪裡呢?

如果有人可以回答我在上一段提出的問題, 希望能送一封信給我 (見此文件的底部). 感激不盡.

【後記】

自從這篇網頁公布之後,的確陸續收到許多善心網友的建議。 感謝各方貢獻。我個人,自從寫完這些網頁之後,就暫時離開了這個課題, 至今沒有進步。讓我直接收穫最多的,是 2000/09/26 收到 Garfield <srl87@gais.cs.ccu.edu.tw> 君寄來的信, 指引我去看一張網頁。我從那張網頁, 又抄回來了當時在成大電研計算機,筆名亦驢,於 1997/05/28 張貼的文章。 皆附於後。

記於 2000/10/04

我們所知道的事實是, 經由倚天中文系統在市場上的成功推銷, Big-5 碼已經凌駕於今天的國家標準碼 (CNS-11643), 或任何其他中文編碼系統之上, 成為實際上獨佔市場的中文編碼系統. 幾乎所有的電子中文資料, 都是依照 Big-5 碼儲存的. 這個不幸的事實, 恐怕很難在近期內改善.

Big-5 字集內一共是 13461 個元素, 其中有符號 408 個和所謂的常用字 5401 個, 次常用字 7652 個. 由於一個字元最多只能編排 256 個號碼, 它顯然不夠拿來編排 Big-5 字集的所有元素. 又因為字元已經成為電腦上記憶體的最小使用單位, Big-5 碼只好以兩個字元來為其字集編碼.

為了和幾乎在全世界所有電腦上通用的美國標準資訊交換碼, ASCII (American Standard Code for Information Interchange) 不相衝突, Big-5 碼的設計是讓字碼的第一個字元屬於高字元. 而其第二字元則可能是低字元, 所以也就有可能和 ASCII 的意義混淆. 在寫作程式的時候, 要特別注意這個現象.

Big-5 首碼在 161 (\241, 0xA1) 到 254 (\376, 0xFE) 之間. 次碼在 64 (\100, 0x40) 到 126 (\176, 0x7E) 之間, 或是與首碼相同的 161 (\241, 0xA1) 到 254 (\376, 0xFE) 之間. 若次碼填滿, 則每個首碼應對應 63+94 = 157 個字. 次碼與 ASCII 重疊, 對應的 ASCII 字集是

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

首碼 161 (0xA1), 162 (0xA2), 163 (0xA3) 放全形符號, 但 163 (0xA3) 沒放滿, 其次碼放到 191 (0xBF) 為止. 可見總共有 (157 * 2) + 63 + (191 - 160) = 408 個符號.

常用字 5401 個, 其首碼從 164 (0xA4) 開始, 至 198 (0xC6) 結束. 共有 35 個, 而 5401 - 157 * 34 = 63, 故 198 (0xC6) 也沒有放滿, 其次碼恰好只在 64 (0x40) 到 126 (0x7E) 之間.

首碼 199 (0xC7), 200 (0xC8) 是空的.

次常用字 7652 個, 其首碼從 201 (0xC9) 開始, 到 249 (0xF9) 結束. 第 249 (0xF9) 碼也沒有放滿, 次碼在 64 (0x40) 到 126 (0x7E) 之間, 與 161 (0xA1) 到 213 (0xD5) 之間, 共有 63+53 = 116 格. 此為 Big-5 字集所定義之 157 * 48 + 116 = 7652 個次常用字. 但倚天的 Big-5 字集在 213 (0xD5) 之後加了七個異體字 (0xD6--0xDC). 依序是

(F9D6) 碁 (F9D7) 銹 (F9D8) 裏 (F9D9) 墻 (F9DA) 恒 (F9DB) 粧 (F9DC) 嫺
(您不一定看得到上述七個字,如果看得到,代表您現在指定的字型, 包含倚天的 Big-5 擴充碼字集) 最後,倚天版的 Big-5 碼又增加了三個表格符號在 0xDD, 0xDE, 0xDF, 所以倚天版的 Big-5 碼之次常用字編碼,最後的碼位是 0xF9, 0xDF.

首碼 250 (0xFA) 到 254 (0xFE) 是空的.

那些空著的碼位, 經常被拿來對應使用者自己的造字檔. 此外, 香港華人所用的文字 (至少, 在 1997 年以前) 是以傳統的繁體字為主, 外加一些粵語的方言字. 例如 [image, 讀音如撢, 是小水潭的意思. 在香港, 中文的電腦編碼系統基本上也是以 Big-5 為主. 但是已經有了一套不成文的標準, 將這些粵語方言字定義在 Big-5 的空碼位. 所以, 臺灣的使用者若是也在這些造字區定義了自己的字, 就不容易與香港的友人共享.

如果您想要流灠 Big-5 的所有字形, 我們利用 TeX 以每個首碼為一頁, 製造了 Big-5 的字形表. 其檔案格式是 PostScript:

  1. 符號 (101KB)
  2. 常用字 (2.1MB)
  3. 次常用字 (2.9MB)

Big-5 碼的注音符號排列不正確, 使得若按其編碼而排列注音的時候, 出現錯誤. 比如說, 「沙」的音排在「使」的音之前, 原因是, 它把五個聲調符號排在注音符號之後. 這不符合一般人對注音排序的認識: 應該是「施十使是」以後才輪到「沙」。

最後, 我建議您選擇閱讀以下幾種相關文件:


Created: Oct 24, 1995
Last Revised: Nov 27, 1996; Dec 2, 2001
© Copyright 1995,1996,2001 Wei-Chang Shann

shann@math.ncu.edu.tw