歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> Linux業界 >> 抓住機遇 構築穩健的中文Linux系統

抓住機遇 構築穩健的中文Linux系統

日期:2017/2/27 10:56:53   编辑:Linux業界

Linux是操作系統中的一朵奇葩,是中國軟件發展的機遇。要使這朵奇葩在中國的大地上生根、發芽、開花,要想抓住Linux機遇,首先必須解決中文本地化的問題。

1999年政府公開支持在中國發展Linux,國內出現了好幾家制作中文Linux發布版本的公司,推動了Linux在中國的發展和普及,但在初期中文Linux都是采用中文平台的方式。

一、“中文平台”

“中文平台”是為了讓計算機能處理中文信息,在操作系統上建立必要的中文處理手段,即在ASCII碼的操作系統上架構一個中文處理環境,用來提供中文的輸入、顯示、打印和中文文件的存儲、處理、傳輸,並為應用軟件開發和運行提供支持,俗稱“中文平台”。

中文平台的主要技術特點是在ASCII碼的操作系統上架構一個中文處理環境。該中文處理環境為了簡化字符處理而使用的處理碼可能是把漢字作為一個寬字符來處理,但進出核心的代碼流都采用文件碼,即多字節字符,所以中文平台本質上仍是按字節處理中文。

從顯示方式來講,可分為字符界面和圖形界面兩種“中文化”方式。字符界面的“中文化”又可分為內核漢化和外掛式兩種。內核漢化是直接修改Linux內核的源程序,使之能處理中文信息。外掛式是不修改Linux內核的源程序,在原有應用程序接口(API)之外增加一層中文信息處理的支撐平台。

圖形界面的“中文化”本質上都屬外掛式,但實現的方式有:

修改XFree 86、即修改X Server;

修改XWindow的庫函數Lib X11.so;

利用LD-PRELOAD載入動態庫。

中文平台具體實現的技術特點各不相同,充分展現了中國人的聰明才智,但也帶來一些問題。

1. 沒有相應的標准,使中文應用軟件在多版本之間的可移植性造成困難。有可能出現在某一版本中文平台上運行的中文應用軟件在另一個版本的中文平台就不能運行或不能很好運行的情況。中文應用軟件開發商可能要為每一個版本的中文平台開發一個產品。這對中文應用程序的發展很不利,而應用又是Linux能否發展的一個極重要的問題。

2.中文平台實際上仍是字節處理,而不是以字符為單位來處理,可能與ASCII碼造成沖突,不能徹底解決漢字與ASCII碼的沖突。而且不能徹底解決漢字的輸入、輸出問題,比如半個漢字的問題(顯示、刪除半個漢字,光標半個漢字移動)。

3.中國是由56個民族組成的大家庭。中國使用漢字的人占絕大多數,中文主要是漢語,但也包括其他少數民族的語言文字。海內外華人使用的漢字有簡體與繁體,日本語、朝鮮語中也有漢字。“中文平台”和“中文化”是個很不確切的說法。而且中文平台也解決不了在一個系統內使用漢字、少數民族語言、日本和朝鮮的漢字問題。

4.POSIX是操作系統的一個標准。 Linux是符合POSIX標准的。而POSIX標准是采用國際化/本地化模式來解決多國語言文字的本地化。

1999年8月底成立了Linux國際化工作組,開始了Linux國際化(縮寫為Li18nux)工作,同時也為中文本地化指出了正確道路。在這之前搞中文平台,是因為那時還沒有Linux國際化組織,也沒有Linux國際化標准。而且Linux是芬蘭人發明,在美國成長起來的,開始也沒有想到它會如此成功,會走向世界,因此Linux以前也沒有考慮國際化的問題。Linux中文平台對Linux在中國的發展和普及起了重要的作用,但它已完成了它的歷史使命。它只是一種暫時過渡的方法,是不得已而為之的方法,並不是中文Linux發展的正確之路。

二、Linux的國際化/本地化

國際化

國際化(Internationalization,縮寫為I18n,即取首尾兩個字母,中間有18個字母)是規定在一個計算機程序內部的能力,使它適應不同的本地語言、本地風俗和編碼字符集。

國際化標准定義一組國際化的應用程序編程界面和用戶界面。

國際化主要包括用雙字節/多字節編碼代替單字節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個。這些民族的文字屬性及字量相差很大,目前對不同民族文字采用不同的編碼方式。在中國使用人數最多的少數民族文字有七種:蒙古文、藏文、維吾爾文、哈薩克文、朝鮮文、彝文和壯文。其中蒙古文、哈薩克文、朝鮮文還須考慮和使用這些文字的其它國家如蒙古國、哈薩克斯坦共和國、朝鮮和韓國使用的編碼一致。中文信息處理主要是漢字,但不只是漢字。它也應該而且必須包括少數民族語言的文字處理這一重要組成部分。這對加強民族團結、提高少數民族地區的經濟、文化、科技發展,對於回擊外國反華勢力攻擊中國不重視少數民族的謊言,都有十分重要的意義。為了在一個計算機系統內同時處理漢字和多種少數民族文字,就必須使用既有漢字、又有各少數民族文字的統一大字符集。

海內外華人使用的漢字有很大差異,這種差異不只是反映在簡繁體和用詞的不同,更重要的是編碼和字符集不同,而要解決這個問題必須采用統一的大字符集。而且,國際化的要求也使得大字符集的使用更為迫切。

ISO 10646 信息技術通用多八位編碼字符集(Information technology-Universal Multiple-

octet Coded Character Set,縮寫為UCS)是國際標准化組織對全世界各國地區使用的書面語言文字及符號進行統一編碼的編碼字符集的國際標准。已於1993年5月正式審定公布了ISO 10646.1。我國根據等同采用國際標准的原則,也於1993年12月宣布為國家標准GB13000.1。

目前,該標准已收入了各國現行標准的文字符號近六萬個,可用於世界上多種語言的書面形式及附加符號的表示、輸入、顯示、存儲、處理、交換和傳輸。其中中文簡繁體漢字、日文用漢字、朝鮮文用漢字(簡稱CJK漢字)共20902個。

ISO 10646標准頒布後,又經歷了一系列的修改與擴充。經過中、日、韓等國的不懈努力,目前CJK漢字擴充集的6582個漢字、彝文和漢字結構符、漢字部首與構件編碼已納入BMP,蒙文和藏文編碼也取得重要進展。目前正在制定輔助平面(可收入漢字的標准,輔助平面2將納入CJK漢字擴充集Extension B的四萬多漢字及Super CJK的六萬多漢字。

其實,使用ISO 10646,中國是最大的受益國。但奇怪的是國外的公司為了軟件的國際化對ISO 10646十分積極,而我國的部分企業卻不重視。

但是國際化標准的制定進展太慢,可能是對“地方”的積極性沒有發揮或發揮不夠。特別是UCS中最大量、最困難的工作是漢字部分。在制定UCS標准時應充分重視中國的意見,並充分發揮中國的積極性。

在處理漢字字符集方面,考慮語言中的內在關系,哪些字是常用、次常用,如何排序(按漢語拼音、筆劃、部首),如何尋求最佳方案等,最有研究、最有發言權的自然是中國人。當然,海外華人和日本、朝鮮、韓國也都使用漢字,他們對漢字字符也很有研究,也要充分考慮他們的意見,但最大的用戶和市場是在中國。

國際化標准組織在漢字字符集中應以中國的意見為重,另外如IBM、SUN等大公司對漢字本地化也有很多研究,對國際化做出很大貢獻,也應多和他們協商。

每個國家執行的是本國的國家標准,國際標准只有變為國家標准時才能被該國執行。國際標准是通過多國的國家標准來實現的。

國際化與本地化是一個辨證的關系。國際化是為了解決軟件能在各個使用不同語言、不同風俗的國家和地區的編碼字符集都能使用的問題,而對計算機程序作出的某些規定。簡言之,國際化正是為了解決本地化。另一方面,本地化是國際化向特定本地語言環境的轉換,本地化要適應國際化的規定。

國際化標准組織要充分尊重各國標准化組織的意見。漢字共有七八萬個,從碼位的占有率來看是絕大多數,而且漢字又有簡體、繁體、日文用漢字、朝鮮文用漢字、韓國用漢字,可謂是最復雜的。國際化工作中最大量、最復雜的工作就是解決漢字本地化的問題,如果漢字本地化解決好了,國際化的工作就完成了一大半。漢字本地化解決得好壞是衡量國際化工作好壞的試金石。全世界使用漢字的人最多,漢字又是聯合國使用的文字,解決好漢字本地化意義十分重大。國際化標准組織應該格外重視中國標准化組織的意見,而不只是聽取各中文Linux廠商的意見。現在國際化組織的成果雖然已上網,但與中國標准化組織機構並未建立直接、暢通,有效的聯系渠道。

而且對中文(漢字)最了解的還是中國人自己。中文本地化離開中國人是搞不好的,國際化離開中國人也是搞不好的。

另一方面,中國的標准化組織也應主動和Linux國際化組織取得聯系,反映自己的意見,有問題和Linux國際化組織協商解決。

制定標准首先應考慮促進技術的發展,有利於整個行業的發展,而不僅僅是保護國內廠家的利益。事實證明單靠制定GB是擋不住國外大公司的。

經濟全球化,軟件國際化是趨勢,Linux也正走向全球,走向國際化。

全球有四分之一的人使用中文,沒有中國的“全球化”是不可想象的,所以Linux需要中國,而中國也需要Linux。解決好Linux的國際化和中文本地化對Linux的發展、對中國軟件行業都是十分重要的事,意義是十分深遠的。我們應抓住Linux機遇,從Linux的國際化和中文本地化突破,把軟件行業的國際化/中文本地化來一個比較徹底地解決。

這裡有一個很重要的問題是對Unicode怎麼看待和對關於字符集的國家標准(GB)如何與國際接軌而又充分體現對中文本地化最有利?

Unicode現在也是國際標准了,而不再只是幾家美國公司自己提的方案了。現在微軟的產品已支持Unicode ,還有SUN、IBM等大公司都支持Unicode 。

漢字不只是中國人民的寶貴文化遺產,也是亞洲人民的寶貴遺產,而且也是世界文明的共同財富。漢字在很多方面是優於拼音文字的。如漢字能使人引起聯想,而聯想是一切發明之母,學習和使用漢字有利於大腦智力的開發;使用漢字能以最小的篇幅表達最多的內容;漢字具有美感等。

我國既然決定了要遵循國際化標准ISO 10646並發布了相應的GB13000標准。共收錄了七八萬個漢字。是盡快過渡到UCS國際標准呢,還是緩慢過渡到UCS國際標准?我看還是盡快過渡好。因為多一個過渡性的GB,就會多一批需轉換的大量文件,也就是多一個大包袱。而且BMP已收錄了兩萬七千多個漢字,能滿足絕大多數人的使用。

應盡快采用國際標准的字符集和編碼方法,以後就只需逐漸補充字型(font)就行了。

關於字符集的標准,有關部門應把重點放在與國際標准有關組織建立聯系,把對漢字字符集、少數民族文字字符集和編碼的有關意見和他們溝通、協商,爭取在國際標准上反映出來。不要再搞新的字符集的GB了,以減少以後向國際化標准轉換時的包袱。

標准制定的重點應放在應用程序界面(API)的規范、標准的制定上。制定標准的一個重要作用就是促進應用程序的開發。十分遺憾的是這項工作進展太緩慢了。為了加快進度,最近中科院軟件所、紅旗軟件公司和一些關心API標准的人正在草擬一個標准初稿,准備供大家討論、修改,以盡快拿出一個草稿供標准化組織討論。

Linux是操作系統中的一朵奇葩,是中國軟件發展的機遇。要使這朵奇葩在中國的大地上生根、發芽,開花,要想抓住Linux機遇,首先必須解決中文本地化的問題。上期我們已經介紹了中文Linux采用中文平台及Linux國際化中的用雙字節/多字節編碼代替單字節7位或8位編碼、使用統一的大字符集ISO 10646等知識的介紹。要建築穩健的中文Linux,我們還要認識Linux的本地化及Linux核心的修改等重要問題。

3. 本地化數據庫Locale DB

國際化的第三個內容是搞好本地化數據庫Locale DB。

語言、字符集、文化習俗等組成一個軟件運行時的本地環境Locale。一個Locale是從本地化特征中提取的執行環境。它包括語言、地域、字符集。Locale的格式是ZH_CN.GBK,表示中文(zh)、中國(CN)、字符集(GBK)。

Locale可以一組Shell環境變量LANG、LC_ALL、LC_CTYPE、LC_COLLATE、LC_TIME、LC_MONETORY、LC_NUMERIC、LC_MESSAGES進行設置,也可以通過C語言國際標准中提供的setlocale()函數在應用程序中查詢和設置。用戶可以在運行時設置整個Locale的全部和部分。

Setlocale()函數為應用程序開發者提供了一種具有設置所有或部分(稱之為類別)本地化環境的工具,setlocale()函數的語法為:

Char *setlocale (category,locale)

Int category;

Char *locale;

其中category是五個類別之一的名字,這些類別的名字是:

LC_CTYPE(提供字符分類和大小寫區分功能);

LC_COLLATE(提供字符串比較和排序功能);

LC_TIME(提供日期和時間表示格式,如中國是年、月、日,美國是 月/日/年,英國是日/月/年);

LC_MONETARY(提供貨幣表示格式,如中國為阿拉伯數字後加RMB,在財務表格中為$後寫阿拉伯數字);

LC_NUMERIC(提供數字表示格式)。

另外,用LC_ALL的特殊值使setlocale()函數設置所有的類別。

Locale數據庫中除了上述本地環境服務,還包括消息服務和代碼集轉換。

4. 輸入、輸出服務(I/O服務)

輸入法可分為兩大類,即模式識別類和編碼類。模式識別類包括聲音輸入法、光學字符識別(optical character recognition,OCR)、手寫體識別等輸入法。編碼類主要是基於拼音、筆劃、部首等輸入法。

圖形界面的國際化與中文本地化,具體包括:

建立中文輸入模塊的摘掛方法和界面;

建立各種點陣漢字庫、矢量輪廓漢字庫、曲線輪廓漢字庫的摘掛方法和界面;

建立基於圖形界面的漢字信息處理函數。

圖形界面的國際化處理主要在三個層次上:

X字型服務器層(X Font Server)提供處理點陣、矢量輪廓、曲線輪廓文字;

庫函數層(Libarries)、提供有關X字型服務器的函數,如把字體裝入服務器、調入、查詢、釋放字型;

命令層(Commands)包括工具類和轉換類命令:

圖形界面中文本地化提供以下應用程序:漢字造字工具、漢字圖標編輯器、漢字圖文編輯工具、漢字圖形打印工具。

Linux關於輸入的標准還是限於鍵盤輸入。在X11R6中,有XIM(X InputMehtod)標准。XIM是在應用程序和輸入法之間的通信協議,目前還沒有字符終端的輸入法標准。

本地化

本地化(localization,L10n,取首尾兩個字母,中間有10個字母)是向特定本地語言操作環境的轉換。

本地化工作主要包括:代碼體系國家特征文件和輸入、輸出服務的具體實現。

1.代碼體系指采用的字符集,我國目前是GB2312、GBK、GB18030和GB13000。

2.國家特征文件指Locale中的本地環境內容。

3.輸入、輸出服務與國際化中的輸入、輸出服務密切相關。

輸入方法按其功能可分為:輸入管理層、前端處理層、輸入單元層、輸入單元算法層、輔助區處理層。

輸入管理層是根據Locale環境自動到指定目錄下找出所需的輸入方法模塊、將其啟動或裝入應用程序,並填入有關入口表,以便建立應用程序與輸入方法之間的聯系。

前端處理層是對各個輸入單元進行管理、負責解釋特殊鍵的含義,切換輸入單元,並把輸入單元處理的結果存於相應的緩沖區中,以保證應用程序取走、或調輔助區處理層函數顯示。

輸入單元層是根據輸入單元的要求,對每個輸入鍵事件進行解釋、確定相應的動作、形成符合輸入單元要求的輸入串,並調用輸入單元算法層的函數進行字典查找或代碼轉換運算,把查找結果返回前端處理層。

輸入單元算法層是根據上層函數送來的輸入碼串進行字典查找運算,並把查找結果返回上一層函數。

輔助區處理層用來提供輸入方法的界面,即時狀態區、預編輯區和造字區類處理函數進行相應的管理。

三、修改Linux的核心,使其完全支持UCS

國際化就是為了解決本地化,它是由一個一個“本地化”組成的。本地化要遵循國際化,本地化完全遵循了國際化,本地化只需要解決輸入法和增加字型了。本地化的標准組織應盡量把本地化所需的內容加入到國際化中,並盡量遵循國際化。做好本地化的工作,就是為了消除本地化。什麼時候不需要再做本地化的工作了,那就說明本地化和國際化的工作做好了。

ISO 10646是徹底解決“代碼壁壘”軟件“千年蟲”的方法。徹底實行ISO 10646就意味著放棄目前各國的字符集標准,包括中國的GB、美國的ASCII。完全實現UCS,就是在操作系統、高級程序語言、支持軟件、應用軟件、通信協議、網絡都UCS化,即都可以支持UCS。而且一些相關硬件設備如終端、打印機也要支持UCS,因為基本ASCII的硬件設備會把UCS中的一些碼值當成控制字符。這時整個系統都是完全國際化了,那時的本地化工作只是提供輸入法和擴充字型(Font)。要徹底實行ISO 10646,首先應從操作系統開始做起,對我國來說就是從Linux開始做起。

UCS從1993年頒布至今已7年了,但進展不大。要完全國際化只能一步一步地走。第一步已制定了UCS,下一步就是在操作系統上完全支持UCS。然後各種軟件、硬件都逐個完全支持UCS。因為操作系統是所有軟件的基礎。不動Linux核心,進行的國際化/本地化本質上仍是一個“中文平台”。因為它仍是按字節處理,是架構在操作系統之上的中文處理環境。只有在操作系統上實現按字符處理、支持寬字符,徹底拋棄ASCII和各種“國家標准”, 完全支持UCS ,才能徹底解決問題。中文平台的前途是不光明的,Windows上不就有過多種中文平台嗎,後來都被微軟的核心漢化徹底擊敗。

我們以前搞中文平台,是因為我們沒有自己的操作系統,也沒有掌握源代碼,是不得以而為之,是權宜、無奈之舉。現在Linux給了我們一個機遇。Linux開放源代碼,這給了中國軟件業一個千載難逢的好機遇。Linux也要不斷創新、不斷發展。我們不能總是跟在洋人後面爬行,“打補丁”,無所作為。我們也要對Linux進行改進,展現中國人的聰明才智,對Linux做出自己的貢獻。

對Linux的改進主要有兩個方面。一是針對Linux的安全漏洞進行改進。八月底在北京召開的Linux World大會上,中科院軟件所副所長孫玉芳介紹說,中科院軟件所和紅旗公司針對Linux的安全漏洞已經進行改進,做了大量工作,並將於近期公布源代碼。二是按UCS的要求改造Linux,使其完全支持UCS。對Linux在核心加以改造,以徹底支持UCS,是中文Linux的最終必須要走的道路,也是Linux的正確發展道路。如果Linux的核心不加以改造,以支持UCS,Linux也將會被經濟全球化,軟件國際化的潮流沖沒。那時,徹底支持UCS的操作系統就將取代目前Linux的地位。所以徹底從核心改造Linux以支持UCS,也是有關Linux沿著正確方向健康發展的大事。

脫離經濟全球化,軟件國際化的潮流,脫離UCS的大方向,孤立地搞民族化、本地化可能會是事倍功半,甚至事與願違的。

完全實現UCS,不僅促使操作系統改造,對通信程序、對很多應用程序也會有影響。

通信協議也要考慮支持UCS。國家標准《信息技術 因特網中文規范——電子郵件傳輸格式》正是利用UCS作為通用信息交換代碼。用戶要通過因特網發送信息時,用本地字符集編碼與UCS的轉換模塊將其轉換成UCS-2或其變體形式(UTF-7、UTF-8)後在因特網上傳送。接收方可以很容易地將UCS-2轉換成本地的字符集編碼。這樣省去了接收方識別和判斷對方發來的信息是用什麼編碼,也省去了用很多種轉換方法將傳送來的不同編碼的信息分別轉換成本地碼。只需用一種UCS-2與本地碼的轉換方法就行了。如果發送方和接收方都用UCS,又可省去收、發時的轉換。由此也可看出完全支持UCS的巨大好處。

四、完全支持UCS,為中國軟件業帶來巨大好處

采用UCS還可大大降低各種軟件本地化的工作量,一個為日本或朝鮮設計的軟件,可以很容易地改為中文版本,只須改一改輸入法和菜單而已。使用UCS也為中國軟件走向世界提供了方便之路,專為中文開發的軟件可以輕而易舉地移植為國際上各地都能使用的版本,因為處理文本的核心軟件並不需要改造。

使用UCS也將大大降低各種軟件本地化的成本,用戶購買軟件的費用也降低了,用戶選擇軟件的范圍也更大了。

使用UCS使各種軟件本地化的成本大大降低,使得軟件開發商可以把人力,資金更多地投入到新產品的開發,一個產品在世界各地“同步推出”也更易於實現,用戶也能更快地用上最新版本的新軟件,那時我們可以說,我國自己開發的民族軟件也是國際通用的國際軟件。

Linux和相關應用軟件完全支持UCS後,我國可以通過制定標准,要求進入我國的類似軟件也必須支持UCS,從而推動國際各軟件公司也支持UCS。

至於終端和打印機等硬件,我國已能制造、質量也不比國外的差。硬件設備支持UCS問題不會很大。我國率先實現終端和打印機等硬件完全支持UCS,還可通過制定標准保護國產產品,並可促進國際上的同類硬件產品也完全支持UCS。

從核心改造Linux、使其完全支持UCS,下一步我們還要開發完全支持UCS的應用軟件。但是為了與現有的應用軟件、硬件兼容,操作系統還必須提供一種轉換機制,將其核心使用的UCS代碼映射成基於字節的本地字符集編碼。

人們對微軟的意見主要是微軟的壟斷阻礙了技術發展,產品在中國售價太高,不開放源代碼,有“後門”。但是,微軟的Wihdows、Office畢竟在市場的占有率為第一,它確有很多地方值得學習,如易學好用,又如從核心完全實現了對UCS-2代碼體系的支持。應該說微軟在這方面是走在前面了。Windows NT/95/98/2000核心中完全實現了對UCS-2代碼體系的支持,它為不同語言的用戶提供了一個統一的、基於UCS-2代碼的操作系統核心,並且應用軟件Office97等也是基於UCS-2代碼的。Windows NT/95/98/2000提供一組碼頁(codepage)來完成UCS-2與現有應用兼容,實現與本地語言如GB/GBK、Big5、JIS等之間的轉換。Linux是否也能如此,在操作系統完全實現對ISO 10646(GB13000)UCS代碼的支持,通過類似於codepage的映射與現在應用程序兼容,而不必再使用GB。Linux在這方面應向Windows學習,並希望Linux能做得更好。

XML是取代現在在Web上流行的HTML的新一代Web語言。國外很多基於Web的程序都是以XML為基礎的。如微軟的.net就是以XML為基礎的。而XML使用的字符集就是ISO 10646,默認的字符集是UCS-2。

來源:chinaunix




Copyright © Linux教程網 All Rights Reserved