您的目前位置:中文輸入法世界輸入法介紹專家&中文輸入法

中文系統與排序

黑 客

中文系統的問題可說層出不窮﹐所以電子雜誌上的讀者來信答問是個常春欄。但奇怪的是﹐好像從沒有人在雜誌上提出過中文字排序的問題。

黑客所說的排序﹐是指在處理資料時﹐要按中文資料欄的內容排序。譬如大家常用的DBASE資料庫軟件﹐若你的私人電話簿要按中文姓名排序﹐結果會如何﹖

答案是會因中文內碼字集序不同﹐而有不同的結果。

舉例來說﹐若你的電話名錄內只有五位朋友﹐姓氏分別為“龍(LONG)”、“陳(CHEN)”、“李(LI)”、“王(WANG)”、“鄺(KUANG)”(括弧內是漢語拼音字母)。GB碼的排序是按漢語拼音字母排列。若不諳熟它的字母序﹐可以簡單地看成是英文的A至Z排序。即排序後是﹕“陳鄺龍李王”。

BIG5碼的排序是﹕先按常用字集5401字的排序﹐排序方法是先筆劃後部首﹔後按次常用字集排序﹐排序法也是先筆劃後部首。即排序後是﹕“王李陳龍鄺”(“鄺”字不管你算它是17劃或是18劃﹐因是次常用字﹐所以排序都會在最後)。

黑客碰到的問題是﹕朋友希望把他日常收集的馬經資料編輯出版﹐目錄要以馬名的中文名字做索引鍵﹐按筆劃排序。這種排序法實屬平常。我們經常看見的人名錄或什麼大會的出席名單﹐也是採用姓氏筆劃序排列的。但他用的中文系統是GB碼﹐結果問題出在三個方面。

第一、原資料庫在GB碼的中文系統內作業。以中文名作索引鍵時﹐系統以漢語拼音字母排序﹐而非以筆劃排序。首先想到的解決方法是把所有的資料庫轉為BIG5碼﹐然後再排序。這個方案引出第二個問題。

第二、BIG5碼排序時分常用字表與非常用字表兩檔排序。換言之﹐即使是只有四劃的“冇”字﹐在BIG5碼排序時﹐也會排到“龍”字之後。如此一來﹐與朋友的原意有很大的分別。

第三、排序後發現﹐馬名的大量香港方言補字﹐逕按內碼序排列﹐不管筆劃多少(系統事實上也不知你補的字有多少劃)。

一般人日常很少碰到這些問題。因為我們日常的私人電話簿或公司名錄﹐排序的目的只供電腦搜尋關鍵字之用﹐根本不會關心筆劃多寡的問題。

除以內碼排序外﹐你也會見過以倉頡碼排序或大易碼排序的輸入法手冊檢字表。可能你家中也有一本呢﹗黑客聽聞“鄭碼”輸入法可供字典作索引之用﹐但經使用後﹐發覺也只是按英文A至Z排序。不過它的A至Z不是GB碼的拼音字母﹐而是自己代表的中文部首。這些部首也非按筆劃排序。

真的不明白﹐當初設計字集的人是怎麼搞的﹖BIG5碼面世二十年﹐一套字集給人罵足二十年───收字準則混亂﹐要用的字不收﹐不用的字收了一大堆。就連筆劃序也給用戶天大的煩惱。至於GB碼更甭提﹐收字比BIG5更少。它以拼音排序﹐本以為可以仿效西文的自然檢索法。但一般人懂念的字﹐可能不足三千之數。結果還是要查部首﹗

原載香港大公報1996年7月


返回上頁