抓住機遇 構筑穩健的中文Linux系統( 二 )


國際化標準定義一組國際化的應用程序編程界面和用戶界面 。
國際化主要包括用雙字節/多字節編碼代替單字節7位或8位編碼,使用統一的大字符集ISO 10646,建立本地化數據庫Locale DB,提供輸入、輸出服務(I/O服務)等內容 。
1. 用雙字節/多字節編碼代替單字節7位或8位編碼
在國際化標準中,系統字處理中,必須以字符為單位,而不能以字節為單位 。字符既可以是單字節字符,也可以是多字節字符,所以徹底解決了半個漢字現象 。
由于歷史的原因,計算機為了實現不同硬件和軟件系統之間數據傳輸的標準化,是使用7位編碼的,稱為ASCII(American standard code for information interchange) 。ASCII是信息交換使用的美國國家標準編碼,它是美國的標準 。ASCII字符集是用7個數據位表示的代碼,它用二進制數值來表示ASCII字符,代碼值的范圍在0到127之間 。大部分基于PC的系統則使用八個數據位的擴展ASCII代碼 。這樣可以使用額外的128個字符代表一些特殊符號、外語字符、圖形符號 。
通信軟件的高位(第8位)是作為奇偶校驗位,用來檢測和改正通信錯誤 。這種7位有效位的假定,滲透到很多軟件中,如電子郵件的實現 。
隨著計算機應用的不斷發展,7位編碼已不夠了 。雖然以后又使用8位的擴展ASCII碼,但256個字符即使對使用拼音文字的單文種的國家的用戶也是不敷使用了 。雖然用了7位或8位能覆蓋基本字母,但還有多種多樣的符號及印刷元素,其數量遠大于256 。各國拼音文字的字母和各種符號就有一萬個左右,漢字則有七八萬之多,使用雙字節(16位)編碼,也只能標識65536個符號 。所以,如果想要計算機能使用多國文字,特別是使用漢字,則必須用雙字節/多字節 。
如果說用兩位數表示年是計算機的千年蟲問題,那么用單字節編碼ASCII處理字符則是計算機文字處理的“千年蟲”問題 。但單字節編碼的危害還沒有引起人們足夠的重視 。
國際化的首要工作就是在系統字處理中,必須以字符為單位,而不是以字節為單位,即用雙字節/多字節編碼代替原來的單字節編碼,這就是用寬字符(wide character,為了統一地處理單字節字符和多字節字符,而采用統一編碼寬度的字符的內部表示)代替單字節字符 。
2.使用統一的大字符集ISO 10646
使用統一的多八位大字符集ISO 10646是國際化的關鍵工作,也是國際化的核心工作 。十分遺憾的是很多人對其重要性認識不足 。
中國56個民族中使用漢字的人占絕大多數,有本民族語言的少數民族有17個 。這些民族的文字屬性及字量相差很大,目前對不同民族文字采用不同的編碼方式 。在中國使用人數最多的少數民族文字有七種:蒙古文、藏文、維吾爾文、哈薩克文、朝鮮文、彝文和壯文 。其中蒙古文、哈薩克文、朝鮮文還須考慮和使用這些文字的其它國家如蒙古國、哈薩克斯坦共和國、朝鮮和韓國使用的編碼一致 。中文信息處理主要是漢字,但不只是漢字 。它也應該而且必須包括少數民族語言的文字處理這一重要組成部分 。這對加強民族團結、提高少數民族地區的經濟、文化、科技發展,對于回擊外國反華勢力攻擊中國不重視少數民族的謊言,都有十分重要的意義 。為了在一個計算機系統內同時處理漢字和多種少數民族文字,就必須使用既有漢字、又有各少數民族文字的統一大字符集 。
海內外華人使用的漢字有很大差異,這種差異不只是反映在簡繁體和用詞的不同,更重要的是編碼和字符集不同,而要解決這個問題必須采用統一的大字符集 。而且,國際化的要求也使得大字符集的使用更為迫切 。

推薦閱讀