漢字編碼
使漢字便於輸入計算機的代碼
Hanzi bianma漢字編碼(Chinese character encoding )是為漢字設計的一種便於輸入計算機的代碼。由於電子計算機現有的輸入鍵盤與英文打字機鍵盤完全兼容。因而如何輸入非拉丁字母的文字(包括漢字)便成了多年來人們研究的課題。漢字信息處理系統一般包括編碼、輸入、存儲、編輯、輸出和傳輸。編碼是關鍵。不解決這個問題,漢字就不能進入計算機。
漢字進入計算機的三種途徑 分別為:
①機器自動識別漢字:計算機通過“視覺”裝置(光學字元閱讀器或其他),用光電掃描等方法識別漢字。
②通過語音識別輸入:計算機利用人們給它配備的“聽覺器官”,自動辨別漢語語音要素,從不同的音節中找出不同的漢字,或從相同音節中判斷出不同漢字。
③通過漢字編碼輸入:根據一定的編碼方法,由人藉助輸入設備將漢字輸入計算機。
機器自動識別漢字和漢語語音識別,國內外都在研究,雖然取得了不少進展,但由於難度大,預計還要經過相當一段時間才能得到解決。在現階段,比較現實的就是通過漢字編碼方法使漢字進入計算機。
漢字編碼的困難點 漢字進入計算機,有許多困難,其原因主要有三點:
①數量龐大:一般認為,漢字總數已超過6萬個(包括簡化字)。雖有研究者主張規定3000多或4000字作為當代通用漢字,但仍比處理由二三十個字母組成的拼音文字要困難得多。
②字形複雜:有古體今體,繁體簡體,正體異體;而且筆畫相差懸殊,少的一筆,多的達36筆,簡化后平均為9.8筆。
③存在大量一音多字和一字多音的現象:漢語音節416個,分聲調後為1295個(根據《現代漢語詞典》統計,輕聲39個未計)。以1萬個漢字計算,每個不帶調的音節平均超過24個漢字,每個帶調音節平均超過7.7個漢字。有的同音同調字多達66個。一字多音現象也很普遍。
計算機中漢字的表示也是用二進位編碼,同樣是人為編碼的。根據應用目的的不同,漢字編碼分為外碼、交換碼、機內碼和字形碼。
1.外碼(輸入碼)
外碼也叫輸入碼,是用來將漢字輸入到計算機中的一組鍵盤符號。常用的輸入碼有拼音碼、五筆字型碼、自然碼、表形碼、認知碼、區位碼和電報碼等,一種好的編碼應有編碼規則簡單、易學好記、操作方便、重碼率低、輸入速度快等優點,每個人可根據自己的需要進行選擇。
2.交換碼(國標碼)
計算機內部處理的信息,都是用二進位代碼表示的,漢字也不例外。而二進位代碼使用起來是不方便的,於是需要採用信息交換碼。中國標準總局1981年制定了中華人民共和國國家標準GB2312--80《信息交換用漢字編碼字符集--基本集》,即國標碼。
區位碼是國標碼的另一種表現形式,把國標GB2312--80中的漢字、圖形符號組成一個94×94的方陣,分為94個“區”,每區包含94個“位”,其中“區”的序號由01至94,“位”的序號也是從01至94。94個區中位置總數=94×94=8836個,其中7445個漢字和圖形字元中的每一個佔一個位置后,還剩下1391個空位,這1391個位置空下來保留備用。
3.機內碼
根據國標碼的規定,每一個漢字都有了確定的二進位代碼,在微機內部漢字代碼都用機內碼,在磁碟上記錄漢字代碼也使用機內碼。
4.漢字的字形碼
字形碼是漢字的輸出碼,輸出漢字時都採用圖形方式,無論漢字的筆畫多少,每個漢字都可以寫在同樣大小的方塊中。通常用16×16點陣來顯示漢字。
5.漢字地址碼
漢字地址碼是指漢字型檔中存儲漢字字形信息的邏輯地址碼。它與漢字內碼有著簡單的對應關係,以簡化內碼到地址碼的轉換。
據粗略統計,現有400多種編碼方案,其中上機通過試驗的和已被採用作為輸入方式的也有數十種之多。歸納起來,不外5種類型:
①整字輸入法:
前一階段,一般是將三四千個常用漢字排列在一個具有三四百個鍵位的大鍵盤上。大多是將這些漢字按XY坐標排列在一張字表上,通常叫“字表法”,或“筆觸字表法”。比如,X25行和Y90列交叉的字為“國”,當電筆點到字表上的“國”字時,機器自動將該字的代碼2590輸入。鍵盤上或字表中字按部首或按音序或按字義聯想而排列。不常用的字作為盤外字或表外字,另行編碼處理。
②字形分解法:
將漢字的形體分解成筆畫或部件,按一定順序輸進機器。筆畫一般分成 8種:橫一、豎(丨)、撇(丿)、點(丶)、折(□)、彎(□)、叉十、方(口)。部件一般歸納出一二百個。由於一般鍵盤上只有42個鍵(包括數字和標點),容納不下這麼多部件,因而有人設計中鍵盤,也有人利用部件形體上的相似點或出現概率的不同,而把100多個部件分佈在26個字母鍵上。
③字形為主、字音為輔的編碼法:
這種編碼法與字形分解法的不同在於還要利用某些字音信息。如有的方案為了簡化編碼規則,縮短碼長,在字形碼上附加字音碼,有的方案為了採用標準英文電傳機,將分解歸納出來的字素通過關係字的讀音轉化為拉丁字母。
④全拼音輸入法:
絕大多數是以現行的漢語拼音方案為基礎進行設計。關鍵問題是區分同音字,因而有的方案提出“以詞定字”的方法,還有的方案提出“拼音-漢字轉換法”,即“漢語拼音輸入 ──機內軟體變換(實為查機器詞表)──漢字輸出”系統。
⑤拼音為主、字形為輔的編碼法:
一般在拼音碼前面或後面再添加一些字形碼。拼音碼有用現行漢語拼音方案或稍加簡化的,還有的為了縮短碼長而把聲母和韻母都用單字母或單字鍵表示的“雙拼方案”或“雙打方案”。如F鍵既表聲母F,又表韻母ang,連擊兩下,便是Fang“方”字。區分同音字的字形碼也多種多樣。除了大部分採用偏旁部首的信息外,還有採用起末筆或採用語義類別的。
上述各種編碼法,各有短長。例如,字表法的特點是一字一格(鍵),無重碼,直觀性好,操作簡單。缺點是需特製鍵盤,速度較慢。字形分解法的好處是按形取碼,不涉及字音,因而不認識的字(包括生僻字、古字)也同樣可以編碼輸入;但漢字形體結構非常複雜,寫法也有許多差異,分解標準不易統一,因而不少方案規則較多。拼音輸入法(包括拼音-漢字轉換法)的優點是操作簡捷,可以“盲打”,不受漢字簡化、字形改變的影響,符合拼音化方向,並且還便於作進一步信息處理;缺點是不認識的字無法輸入;另外,如果不加字形碼或不用以詞定字法或顯式選擇法,同音字較難處理。
漢語拼音推廣應用,並逐步過渡到漢字和漢語拼音文字並存並用,這是一種雙軌制。漢字信息處理領域中,音碼和形碼的並存並用,同樣是一種雙軌制。因此,不少人認為,採用雙軌制好,理由有以下5點:
①對掌握普通話的人來說,使用音碼比形碼方便,速度比較快。形碼雖然較慢,但能輸入任何漢字(包括古字)。採用雙軌,操作員認識的字可按音輸入,不認識的字按形輸入,會普通話的人可按音輸入,方音重的人可按形輸入。
②對於用字量少的單位,按音輸入無問題,但對用字量多的單位來說,按音輸入就不如按形輸入,因為一般人只能念出一部分漢字。
③按形輸入(尤其是整體輸入)對於中文信息處理的某類工作,如統計漢字,非常適合;但是對於其他類工作,例如統計漢語的音(聲韻調)則無能為力。按音輸入則正相反。雙軌正好是相輔相成。
④有的形碼可以照顧多種漢字(如日本的漢字、南朝鮮的漢字),而音碼能分詞連寫,便於作進一步的信息處理。
⑤適當的雙軌方案,不會增加設備上的麻煩。如不考慮採用整字輸入,一般均可使用現有的小鍵盤。
漢字編碼研究的新發展 除了單軌向雙軌發展之外,還有下列趨勢:
①混合式編碼法。筆觸字表示法中除整體字之外,增加一些部件或字元,可以解決盤外字問題,甚至能具有字形分解法的全部優點。而筆畫方案為了提高速度,一般也增加一些部件或整字。
②充分利用簡碼和辭彙碼。這樣可以提高輸入速度。因而人們為少量出現頻率高的字或詞設計了單字母和雙字母的簡碼。
辭彙碼也是提高速度的手段。有一種形碼方案的辭彙碼是根據每個字的部件規定的,如“漢字編碼”的辭彙碼是43、45、55、13(氵冖糹石)。另一種形碼方案的辭彙碼是利用計算機引導方式輸入的。例如,當“中”字輸入后,一按語詞鍵,屏幕上便顯示出“中國”、“中型”、“中性”、“中華”等雙音詞;選擇“中國”后,如再按一下語詞鍵,便可顯示出“(中國)話”、“(中國)人民”、“(中國)共產黨、”、“(中國)工農紅軍”等詞或片語。音碼方案的辭彙碼實際上為片語碼,如 ZRG“中華人民共和國”,ZZXY“中國中文信息研究會”。辭彙碼不僅能提高速度,而且也能區別同碼。但是,如果用得太多,也會產生重碼。因此,有必要劃分通用辭彙碼和專業辭彙碼,以減少重碼。
③充分發揮“電腦”的作用,盡量減少“人腦”的負擔。上述計算機引導輸入法就是一例。還有的方案不斷以開窗口方式向操作員提供選擇的範圍。這樣,操作員不必再記憶大量的編碼規則。
《信息交換用漢字編碼字符集輔助集》
編碼方案繁多,需要有一個統一的標準。1981年,國家標準局公布了《信息交換用漢字編碼字符集基本集》(簡稱漢字標準交換碼),共分兩級,一級3755個字,二級3008個字,共6763個字。這種漢字標準交換碼是計算機的內部碼,可以為各種輸入輸出設備的設計提供統一的標準,使各種系統之間的信息交換有共同一致性,從而使信息資源的共享得以保證。正在制定《信息交換用漢字編碼字符集輔助集》,以滿足少數用字量超過基本集的用戶和台灣、香港等地的需要。
① GB2312-80字符集,中文名 國家標準字符集(GB=GuóBiāo國標)。收入漢字6763個,符號715個,總計7478個字元,這是大陸普遍使用的簡體字字符集。楷體-GB2312、仿宋-GB2312、華文行楷等市面上絕大多數字體支持顯示這個字符集,亦是大多數輸入法所採用的字符集。市面上絕大多數所謂的繁體字體,其實採用的是GB-2312字符集簡體字的編碼,用字體顯示為繁體字,而不是直接用GBK字符集中繁體字的編碼,錯誤百出。
② Big-5字符集,中文名 大五碼,是台灣繁體字的字符集,收入13060個繁體漢字,808個符號,總計13868個字元,普遍使用於台灣、香港等地區。台灣教育部標準宋體楷體等港台大多數字體支持這個字符集的顯示。
③ GBK字符集,中文名 國家標準擴展字符集(GB=GuóBiāo國標;K=Kuò擴,即擴展),兼容GB2312-80標準,包含Big-5的繁體字,但是不兼容Big-5字符集編碼,收入21003個漢字,882個符號,共計21885個字元,包括了中日韓(CJK)統一漢字20902個、擴展A集(CJK Ext-A) 中的漢字52個。Windows 95/98簡體中文版就帶有這個GBK.txt文件。宋體、隸書、黑體、幼圓、華文中宋、華文細黑、華文楷體、標楷體(DFKai-SB)、Arial Unicode MS、MingLiU、PMingLiU等字體支持顯示這個字符集。微軟拼音輸入法2003、全拼、紫光拼音等輸入法,能夠錄入如鎔鎔炁夬喆嚞姤贇贇䶮龑昳堃慜靕臹等GBK簡繁體漢字。
Big-5 (台灣繁體字)與GB2312-80 (大陸簡體字),編碼不相兼容,字元在不同的操作系統中便產生亂碼。文本文字的簡體與繁體(文字及編碼)之間的轉換,可用BabelPad、TextPro或Convertz之類的轉碼軟體來解決。若是程序,Windows XP操作系統,可用Microsoft AppLocale Utility 1.0解決;Windows 2000的操作系統,大概只有用:中文之星、四通利方、南極星、金山快譯之類的轉碼軟體方能解決了。
④ GB18030-2000字符集,包含GBK字符集和CJK Ext-A 全部6582個漢字,共計27533個漢字。宋體-18030、方正楷體(FZKai-Z03)、書同文楷體(MS Song)宋體(ht_cjk+)、香港華康標準宋體(DFSongStd)、華康香港標準楷體、CERG Chinese Font、韓國New Gulim,以及微軟Windows Vista操作系統提供的宋黑楷仿宋等字體亦支持這個字符集的顯示。Windows 98支持這個字符集,以下的字符集則不支持。手寫輸入法逍遙筆4.0版支持GB18030字符集及方正超大字符集漢字的錄入。
⑤ 方正超大字符集,包含GB18030-2000字符集、CJK Ext-B中的36862個漢字,共計64395個漢字。宋體-方正超大字符集支持這個字符集的顯示。Microsoft Office XP或2003簡體中文版就自帶有這個字體。Windows 2000的操作系統需安裝超大字符集支持包“Surrogate更新”。
⑥ GB18030-2005字符集,在GB13030-2000的基礎上,增加了CJK Ext-B的36862個漢字,以及其它的一些漢字,共計70244個漢字。
⑦ ISO/IEC 10646 / Unicode字符集,這是全球可以共享的編碼字符集,兩者相互兼融,涵蓋了世界上主要語文的字元,其中包括簡繁體漢字,計有:CJK統一漢字編碼20992個、CJK Ext-A 編碼 6582個、CJK Ext-B 編碼 36862個、CJK Ext-C 編碼 4160個、 CJK Ext-D 編碼 222個,共計74686個漢字。SimSun-ExtB(宋體)、MingLiU-ExtB(細明體)能顯示全部Ext-B漢字。目前有 UniFonts 6.0 可以顯示Unicode中的全部CJK編碼的字元,輸入法可用海峰五筆、新概念五筆、倉頡輸入法世紀版、新版的微軟新注音、倉頡輸入法 6.0 版(單碼功能)等輸入法錄入。Ext-C還有2萬多個漢字。詳情請參閱香港中文大學網站、馬來西亞倉頡之友網站、福建陳清鈺個人網站。
⑧ 漢字構形資料庫2.3版,內含楷書字形60082個、小篆11100個、楚系簡帛文字2627個、金文3459個、甲骨文177個、異體字12768組。可以安裝該程序,亦可以解壓后使用其中的字體文件,對於整理某些古代文獻十分有用。
如果超出了輸入法所支持的字符集,就不能錄入計算機。有些人利用私人造字區PUA的編碼,造了一些字體。一些如果沒有相應字體的支持,則顯示為黑框、方框或空白。如果操作系統或應用軟體不支持該字符集,則顯示為問號(一個或兩個)。在網頁上亦存在同樣的情況。
劉湧泉:《語言應用和現代化──中文信息處理研究》,載《語文研究》,1983,第1期,太原。
中國漢字編碼研究會編:《漢字編碼方案彙編》,科學技術文獻出版社,北京,1979。
(劉湧泉)