CNS 編碼系統

東亞語文系統的基本字彙都遠超過 256 這個數. 早期, 以日本為首, 採用如同我們的 Big-5 的方法. 一方面, 為了有足夠的數字拿來編碼, 必須用兩個位元對應字集中的一個元素. 讓我們稱第一個碼為首碼, 第二個為次碼. 二方面, 為了與 ASCII 相容, 至少首碼必須是一個高位元. 既然與 ASCII 相容, 所有 ASCII 中所定義的基本格式控制碼就都可以沿用, 所以後來定義的字集中就不需要另加控制碼. 這種原始的日本編碼系統 (shift-JIS) 現在據說已不太普遍, 他們大部分已經跟隨新的標準 (JIS X 0208-1990). 這個新標準已經被擴充成一個國際雙位元編碼系統的標準, 由國際標準協會 (ISO) 制訂並建議各國使用. 我國的國家中文標準交換碼就符合這個建議, 見於後.

中央標準局在 1992 年公布的標準交換碼. 這個碼的編排符合國際標準協會的建議, 目前共有七個字面, 每個字面排入 94 * 94=8836 個字碼 (兩個字元一個碼, 介於 33 和 126 之間). 第一二字面所選定的字基本上與 Big-5 相同, 但改正了幾個 (也許是所有的) 錯誤. 第三到七字面定義了三萬多個罕用字, 或體字, 異體字, 和一些只出現在算命先生的命名學上的奇奇怪怪的字: 它們的字碼以及字型. 八到十六字面空著, 第十二字面是 user defined. 還有很多擴充的空間. 詳情見於後.

我國的 CNS 碼已經在國際標準協會註冊, 我們應該儘量跟隨這個標準. 我的學識不足以評斷這些在第三到第七字面的字是否完整或排序妥當, 因為它們全是我不認識的字. 如果真的還能找到一個曾在中國典籍上出現但不被列入 CNS 七個字面的字, 我建議不要使用所謂 user defined 的第十二字面, 而是應該運用網路大眾傳播的力量, 加上政治游說的力量, 讓 CNS 標準隨著我們的需求而擴大或更新. 因為, 所謂 user defined, 到最後一定是一團沒用的稀泥.

由中國大陸的國標碼 (GB) 所定義的中文簡體字字集, 總數少於 8836. 而且它的編碼系統本來就合乎國際標準協會的建議. 簡體字的暢行和 Big-5 的暢行類似, 都是無奈而必須承認的既成事實. 所以我個人很希望在 CNS 的其中一個字面上放進國標碼.

以臺灣的自許為電腦王國的地位, 我們的國家交換碼到 1986 才首次公布, 而且又溝通不良, 導致市場上沒人用它. 我想, 即使現在, 還是計算機使用者沒聽說過這個標準, 或是聽說了但是沒考慮過要用它. 倒是資策會和一些公家單位開始 (也許是被迫) 使用它. 國外的一些公司開始支援它, 因為它畢竟是在國際上註冊的國家標準碼.

由經濟部中央標準局制訂的這一套中文標準交換碼, 應該是 (在臺灣的) 中華民國的國家電子資訊標準碼. 現行的標準是 CNS-11643, 於一九九二年五月二十一日頒佈. 可笑的是我在一九九四年五月初才從網路上外國朋友處得知這個消息. 當時是幾位朋友在討論擴大中文字集的話題, 本來都圍繞 Big-5 或 Unicode 打轉, 一直到有位在英國的外國友人說他聽說我們有一個``國家標準,'' 借問我能不能介紹一下. 我那才趕緊請了一位學生到中央標準局去取經. 拿回來一本三百餘頁的列表, 裡面幾乎二話不說, 就只是把所有字碼和它所對應的標準寫法, 一一列在紙上, 每頁一百六十個字. 這些列印出來的字, 都是用整套標準中所附帶的 40 * 40 的點陣字印出來的. 我們也取回了這些點陣字的電子檔案, 現在放在東坡上供所有網上的朋友取用. 至少有來自美國, 英國, 澳洲和日本的伙伴已經拿走了這些檔案. 在美國留學的一位同學, 為這一套字作了 HBF (Hanzi Bitmap File) 格式. 這些點陣字的製造日期記錄是九四年三月九日.

CNS-11643 的兩個前身是 CNS-5205 和 CNS-7654. 舊版的標準據說與新版的相容, 但我無從查證. 反正沒多少差別, 舊版的使用者可能很少. 最早頒佈的時間看起來是一九八六年八月四日.

他們將 CNS 定義的整個字集分成十六個字面, 其中第一到七個字面已有定義, 八到十一還空著, 十二到十六要保留給使用者造字區.

每一個字面定義至多 94 * 94=8836 個字, 每一個字用兩個介於 33--126 (0x21--0x7E) 的字元來編碼. 這些字元對應 ASCII 的字集.

字面一
(1) 684 個符號, 包括注音符號, 中國字部首, 比標準 Big-5 字集中定義的多了 276 個. (2) 5401 個常用字, 包括教育部頒佈的 4808 個常用國字, 與 Big-5 字集中定義的 5401 個常用字相同, 但是更正了幾個 Big-5 的錯誤次序.
字面二
7650 個次常用字. 基本上也與 Big-5 字集中定義的次常用字相同, 除了更正了次序之外, 又剔除了兩個字.
字面三
由行政院主計處於一九八八年整理出來的 6148 個罕用字和異或體字. 舊版中放在第十四字面. 例如, 這個字, 有時把上面的兩個口換成兩點, 這個異體字就定義在第三字面.
字面四
戶政用字, 各單位或資訊業者的特別字, 共 7298 個. 例如門中三人這個字就在這裡 (0x4822). 在這裡我們看到甲但是中間的一豎只到曰字中間一橫的這個字 (0x217C). 這是廣東話說蟑螂的蟑字. 但是, 那個螂字應是上述那個字的上下顛倒字, 亦即, 由字但一豎只到曰字中間一橫. 而我在所有字面中找不到這個廣東的螂字. 這可能是一個疏失.
字面五
教育部頒佈之罕用字, 且尚未出現於前四個字面者, 凡 8603 個字.
字面六
教育部頒佈之異體字, 筆畫在十四以下且尚未出現於前五個字面者, 凡 6388 個字.
字面七
教育部頒佈之異體字, 筆畫在十五以上且尚未出現於前六個字面者, 凡 6539 個字.

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

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


Created: Nov 24, 1996
Last Revised: Nov 24, 1996
© Copyright 1996 Wei-Chang Shann

shann@math.ncu.edu.tw