編碼方法研究
漢字編碼按字麵解釋,就是“漢字‘編’為鍵盤上的‘碼’(即鍵麵符號)”,關鍵在於如何編為“碼”。有人覺得別人“編”的方法還可以改一改,想出了一個“編(即映射)”的方法就工作起來,直到落實“編”字的時候,才覺得困難重重。發現某些字按這個方法“編”有問題,就挖空心思定規則,於是就產生了按字製訂的規則。這些規則,大多數是解決拆分的,人們於是“發現了”拆分是漢字編碼的“瓶頸”。我們在研究了這些方案之後,覺得大多數方案之所以不成熟,都是設計者把設計的起點放在映射方法上,沒有全麵考慮漢字編碼方案的係統關係。
一、編碼方法揭秘
全國的一千多種漢字編碼方案,給部件編代碼的方法隻有四種。①用筆畫加數字(或單用筆畫,如鄭碼),如五筆字型;②用音,如見字識碼;③用形,如表形碼;④無理,如錢碼。編碼方法就是給部件類找代碼(映射)的方法。
不同的拆分就會出不同的方案。如“吳”字,按形拆為“口、天”,或“口、一、大”,或“口、二、人”……還可以再拆下來。筆畫越多的字,問題越複雜,變化太多了。
不同的編碼的方法也可以出不同的方案:“口、天”可以編為“KT”,這是用兩個部件的讀音;也可以編為“KTWW”,後麵兩個為“吳”的讀音;也可以編為“KTDD”;“D”是最後一個“大”字的讀音;還可以用最後一個捺筆作代號……如果把碼位再作一次改變,不是又發明了一個新編碼?如規定為“WKTN”:第一位為本字讀音,二三位為頭兩個部件讀音,最後為末筆代碼(讀音、數字、代號等俱可),都是有規可循的。
上麵說的編碼方法還隻用了讀音。如用形亦可,也可以用形音相互結合,如果再加上數字,不同的排列組合就可以出很多很多不同的方案:“口”像“O”,“天”像“R”,“吳”的編碼就成為“OR”;如拆作“口、一、大”,就編為“OYR”,“1”就等於“一”,讀音為“Y”;如把讀音放在前麵,就成為“WOYR”;如把讀音放在後麵,就會成為“OYRW”。如果“一”當成數字“一”,編碼就成了“O1RW”……這些變化方法,都有道理好講,若再加筆畫、數字,十幾歲的小孩當然可以成為編碼發明人,例如杜氏全息碼。
陳明遠先生說:“編碼的規則,按我們的理解,不應該是任意製訂的,而必須是一種根據‘客觀規律性’建立起來的‘規定性’的條文。”⑼漢字編碼的實踐,實際就是尋找把一個字符集的每個漢字,編為一組代碼的客觀規律。人們在尋找時,常常會碰到許多困難,並在想方設法加以克服。
拆分、分類、編代碼如果都可以你定你的、我們定我們的,人人都可以“發明”出幾個來。例如把“吳”編為“ABCD”,或者“CDBA”,如何編,由設計者確定。不按照客觀規律設計編碼並不困難,選幾個部首(或部件、字根),或幹脆全部采用《新華字典》的部首,規定一個對應方法,例如用讀音聲母或用數字;拆分的方法:能套拆的就拆,不能拆的就拆拆筆畫。在計算機上把每個漢字的代碼打進去,方案就成功了。像這樣與“規範碼”類似的方案(如“表音碼”,它早已走在“規範碼”之前了)全國何止一二個?有一個方案取名為“五筆二維”,顧名思義,就可知道它與五筆字型大同小異。再讓我們分析一下“雙拚”:聲母安排大家都不變,要變的都是韻母的安排。有的加聲調,有的不加;有的用未筆作區別碼,有的不用。實際是各搞一套,內容相似,基本重複。
我們把這些“發明”加以剖析,說明編碼的“發明”不困難也不神秘,如果您有興趣,明天就可以成為幾個新編碼的發明人,請看下表:
名稱部件代碼理由代碼理由代碼理由
橫一、1形義均同1按筆形序Y1的讀音聲母
豎丨、I形狀近似2按筆形序1與丨(豎)形似
撇丿、J形狀近似3按筆形序E與3形似
捺N讀音聲母4按筆形序S4的讀音聲母
點丶D讀音聲母5按筆形序W5的讀音聲母
豎折L形狀近似6按筆形序L6的讀音聲母
橫折乙Z形狀近似7按筆形序Q7的讀音聲母
上麵表中列出了七種筆形的三種編碼方法。第一種是以形狀近似為主,以讀音為輔;第二種以筆形序代以數目字;第三種以筆形序的讀音聲母為主,輔以與序數形狀近似的拉丁字母。這三種方法還可以相互揉合,也可以把“捺、點”“豎折、橫折”合並,都可以出新的編碼方法。又如表形碼的1—5個數字代碼,也可以變成“ABCDE”,可可以按形似和讀音改為拉丁字母。以上所述的七種筆形三種代碼方法就可以組合出不少的方案。我們還可以把以上部件清單中各個部件類中的某些部件重新安排,因為,有的部件有兩三種特征,例如“、”,既可說是四個分離的筆畫,代碼為“D”;也可以說它們是兩個對稱相離的筆畫結構塊,代碼為“X”。又如斜筆相交的“”類,現用“S”為代碼,解釋時說,“戈”的草書與“&”形似,反過來,與“S”的手寫體形似。用“X”為代碼,也可以說得通,因為“”是個單交叉,象“X”;如“”既可用“i”為代碼,也可用“j”為代碼。這些對應方法如再加上沒有定數的部件(字根、部首),一個萬“碼”奔騰的局麵自然不形而成。由是可知,鼓吹編碼方法的“百花齊放”,授予編碼方法以“專利發明”,隻能使編碼方案越來越多,導致無法遏止的編碼大潮。說穿了,編碼根本不是技術,不是發明,是學術界把軍令弄錯了。
二、代碼置換方式和映射方法
狹義的編碼是指如何為部件類設置代碼。為部件類設置代碼的優劣,主要要置換方式和映射方法。置換方式有直接和間接兩種;映射方法有有理無理兩類。這兩者與漢字建立代碼串時的反應的速度有很大的關係。如表形碼使用字形對應是一種直接的置換方式,又以部件類的特征映射代碼,是一種有理的編碼方法,思維轉換感覺就快;“五筆”用筆畫換數字,數字再轉換鍵盤符號,鍵符與字根(即部件)的置換方式是間接的,盡管它設置的五區五位與數字有理地對應,頭腦中轉彎,仍然會感覺反應的速度慢。兩者相比,雖然都是有理,記憶量卻大不相同。因為,表形碼用的是直接置換;“五筆”用的是間接置換。
根據所有編碼方案置換代碼的方式方法,我們用排列組合把它們分為四類:
①直接而有理,②間接而有理,③直接而無理,④間接而無理。