Bear's House
資訊科技

認識中文字元碼

 
 
 

首  頁

資訊科技

教育學習

有感而發

相關鏈結

批評指教

 

 

六、中文字元集的編碼

(一)中文字元編碼的限制

  1960年代初期,當美國國會圖書館人員起草英文資訊交換碼時,電腦領域裡還沒有任何共通的標準或規範。但時至今日,以ASCII為基礎的一整套標準及規範卻早已建構了電腦和網路的整體環境。除非中文電腦業者打算自行建立新的電腦與通訊體系,否則就必須遷就這些標準和規範。中文字元碼因而不免受到現行電腦環境的諸多限制。現行電腦環境對中文字編碼的主要限制有二:

  1. 位元組界限(byte boundary):由於ASCII的強勢主導地位,使得現代的電腦和通訊設備,原則上都是以七位元或八位元的位元組做為處理或傳輸文數字資料的基本單位。由於中文字集的字數龐大,不論是七位元或八位元的環境,中文字元碼都需要至少兩個位元組。因此需要有某種特別的機制,電腦才可能識別某兩個連續的位元組為一個中文字元碼而非兩個ASCII或延伸ASCII字元碼。這種字元碼識別機制,必然會使相關程式變得較為複雜,而且耗費額外的電腦計算時間。

  2. 控制字元和控制符的禁用:中文字元碼裡的每一個位元組都必須避開ASCII的空格字元碼和33個控制碼,否則將會造成資料漏失或系統誤動。每一個位元組,在七位元環境下僅剩94個可用的編碼位置,而在八位元的環境下則是僅剩至多222個編碼位置可用。此外,有些作業系統或應用程式往往挪用英文文件裡較少使用的部份特殊符號做為控制符,導致中文字編碼時還必須再避開這些符號,以免同樣造成資料漏失或系統誤動。結果是,每一個位元組僅剩不到94個或不到222個編碼位置可用,以至於更浪費編碼位置。

 

(二)中文字元的編碼

   從事中文字的編碼工作,必須面對現行電腦環境的限制,以及因中文字屬性和特性所衍生的問題。中文字編碼的步驟與第一章所述者類似,大致如下:

  1. 建立中文字集,也就是蒐集和篩選所需要的中文字。

  2. 整理必要的中文字屬性。

  3. 依據某些屬性將中文字加以排序。

  4. 選擇中文字元碼的編碼格式。

  5. 賦予每個中文字一個碼。

  由於中文字的數量龐大,致使中文字的蒐集、篩選、屬性整理、排序和編碼等工作變得相當艱鉅。下文中,將就中文字編碼的各個步驟,說明可能會碰到哪些問題以及可行的解決方案。

1.建立中文字集:

  中文字的總數雖然多達十萬以上,但實際常用者不過數千字而已。一般的中文資訊處理系統並沒有處理全部中文字的需求,如何選取適當與適量的中文字,因而成為制訂中文字集的首要課題。蒐集中文字元以建立中文字集,依編碼目的可採取兩種不同的策略:

  • 若是想要編訂一套中文交換碼,應盡可能廣泛的蒐集中文字。至少要能涵蓋主要字詞典所收錄的中文字,以及所有重要中文資訊處理系統(例如:戶役政系統、財稅系統等)的字元集,以免因缺漏某些中文字而影響各個中文資訊處理系統間的資訊交換。由於中文字集的開放特性,不管再怎麼廣泛的蒐集中文字,總還會有漏網之魚。因此,中文交換碼在編訂公佈之後,仍應有主事單位負起繼續蒐集中文字、維護字元集和交換碼的工作。

  • 若是針對某種用途或應用領域而編訂中文字元碼,理應先針對用途或應用領域進行用字研究,以篩選出所要的中文字。這種中文字元碼大多為內碼,編碼空間有限,因而用字研究頗為重要。隨意找些中文字來拼湊字元集,將會帶給使用者相當大的困擾:要用而且相當常用的字找不到,但永遠用不到的字卻又是一大堆。這些無用的字浪費記憶空間事小,浪費編碼位置而讓使用者要加字卻發現造字空間不夠,問題可就棘手了。

2.整理必要的中文字屬性

  電腦並不具備人類的語言能力,所能儲存和處理的只是字元碼和屬性資料。也就是說,中文字集必須配合中文字的形、音屬性,才足以因應電腦輸入、輸出和處理中文資訊之所需。所以,有必要針對字元集裡的每一個中文字,整理出注音、部首、筆畫數、輸入形碼、字型等屬性資料。電腦因具有強大的處理資訊能力,已廣為各行各業所採用。若電腦的中文字形、字音錯誤,或將造成文化上的傷害,因此其正確性不容忽視。理想的做法是:由政府主管部門統籌整理標準化的中文字形、字音,提供中文系統業者使用。若是還有些中文字超出政府所公佈的字元集,則以委請文字學專家負責或協助整理工作較為妥當。

3.依據某些屬性將中文字加以排序

  為了方便編碼起見,需要將中文字集裡的所有中文字依照某些屬性加以排序。例如,以先部首後筆畫數(不含部首)的方式排序,或是以先總筆畫數後部首的方式排序,或是根據發音排序。有時候,還要考慮中文字的使用頻率,例如:先將中文字依其使用頻率加以分群(常用、次常用、罕用等),然後再就每一群中文字分別予以排序。

4.選擇中文字元碼的編碼格式

  由於受到現行電腦與通訊環境的限制,中文字元碼必須採取多位元組碼形式。中文字元碼的長度應使其編碼空間足以容納中文字集和預留的造字空間。與建立中文字集的做法相類似,依編碼目的可採取兩種不同的策略:

  • 若是想要編訂一套中文交換碼,則必須依據相關標準決定編碼的規則,以避免中文交換碼因與電腦或通訊設備衝碼而造成資料漏失或系統誤動。目前可據以編訂交換碼的國際標準首推ISO/IEC 2022,請詳見第三章

  • 若是針對某種用途或應用領域而編訂中文字元碼,則應依據特定作業系統和應用程式的限制,決定編碼格式。這類中文字元碼,通常採用兩個或四個位元組,每一位元組為七或八個位元。每個位元組都需避開ASCII的空白字元碼和控制碼,以及作業系統和應用程式的控制符,以免造成資料漏失或系統誤動。

5.賦予每個中文字一個碼

  就已經排序好的中文字集,按照選定的編碼格式,依序賦予每個字一個碼。由於中文字元碼的每一個位元組都必須避開控制符字元,因此整個編碼空間將會被切割成不連續的區段。已經排序好的中文字集,可以另外依序賦予每個中文字一個連續編號(慣例上從1開始),稱為字序碼。中文字編碼格式通常有其規則,因此中文字元碼和字序碼兩者可以互相轉換。

上一章  返回目錄  下一章