耿航
本文介紹字符集的Unicode標準和ISO的相應標準,主要涉及到使用最廣泛的ISO10464字符集和UCS字符集,包含字符集之間的演變及關系,這些字符集是計算機世界,網絡世界數字標識的基礎,因此對這些字符集的認識、了解,進而研究其編碼方式都有很重要的意義。
一、ISO系列標準
ISO國際標準化組織作為國際上標準化的一個主要組織,其制定的標準涉及食品,醫療,能源,電子,通信,機械,紡織,農業等領域,現以累計制定了約有15000個標準。ISO的標準是按照國際標準分類法對不同的領域劃分為不同的標準組,ISO目前有ISO ICS field 01到ISO ICS field 97。國際標準化組織ISO的國際標準以號碼表示:ISO XXXX: YYYY;XXXX表示ISO的標準號碼;YYYY表示年份,可以省略。
本文中所涉及的字符集標準位于ISO ICS field 35:Information technology. Office machines中的35.040 Character sets and information coding字符集編碼標準系列。該系列中主要有以下的標準:(如下表)
在上面的表中,可以看到和字符相關字符集主要有ISO 8859系列,這個字符集中包含了大部分國際語言符號的編碼標準,另一個重要的字符集是ISO 10646。ISO 8859,全稱ISO/IEC 8859,是國際標準化組織ISO及國際電工委員會IEC聯合制定的一系列8位字符集的標準,現定義了15個字符集,ISO 8859-1 到ISO 8859-16。ASCII(American Standard Code for Information Interchange,美國信息互換標準代碼)是基于羅馬字母表的一套電腦編碼系統,采用7bit進行編碼。它主要用于顯示現代英語和其他西歐語言。它是現今最通用的單字節編碼系統,并等同于國際標準ISO 646。
二、 ISO 10646標準和UCS字符集
1)ISO 10646簡介
在字符集歷史上有兩個影響較大的獨立的字符項目,一個是國際標準化組織的 ISO 10646 項目, 另一個是由美國多語言軟件制造商組成的協會組織的 Unicode 項目。最初兩個項目是獨立運作,但1991年前后, 兩個項目的參與者都認識到, 世界不需要兩個不同的單一字符集。它們合并雙方的工作成果, 并為創立一個單一編碼表。 雖然兩個項目仍都存在并獨立地公布各自的標準,但同時都同意保持碼表兼容,并緊密地共同擴展對任何未來的擴展的需要。
2)UCS簡介
ISO 10646 定義了通用字符集UCS (Universal Character Set)。UCS 是所有其他字符集標準的一個超集。它保證與其他字符集是雙向兼容的。 即將任何文本字符串翻譯到 UCS格式, 然后再翻譯回原編碼, 你不會丟失任何信息。
UCS 包含了用于表達所有已知語言的字符。不僅包括拉丁語,希臘語, 斯拉夫語,希伯來語,阿拉伯語,亞美尼亞語和喬治亞語的描述, 還包括中文, 日文和韓文這樣的象形文字, 以及平假名,片假名,孟加拉語,泰米爾語, 印地語,埃納德語,泰國語, 老撾語, 漢語拼音(Bopomofo),以及其他數也數不清的語。 對于還沒有加入的語言, 由于正在研究怎樣在計算機中最好地編碼它們, 因而最終它們都將被加入。UCS 還包括大量的圖形的, 印刷用的, 數學用的和科學用的符號, 包括所有由Postscript, MS-DOS,MS-Windows, Macintosh字體, 以及許多其他字處理和出版系統提供的字符。
三、Unicode字符集和ISO 10464的區別
Unicode是多語言軟件制造商組成的協會組織(unicode. org)指定的編碼機制,它目的在于將全世界常用的文字都包含進去。Unicode使用16bis進行編碼,范圍為從U+0000到U+FFFF。 每個2byte碼對應一個字符,在版本2.0開始拋棄了16位限制, 原來的16位作為基本位平面, 另外增加了16個位平面, 相當于20位編碼, 編碼范圍0到0x10FFFF。
Unicode 協會公布的 Unicode 標準嚴密地包含了ISO 10646-1實現級別3的基本多語言面。 在兩個標準里所有的字符都在相同的位置并且有相同的名字。Unicode 標準額外定義了許多與字符有關的語義符號學, 一般而言是對于實現高質量的印刷出版系統的更好的參考。 另一方面, ISO 10646 標準, 就象廣為人知的 ISO 8859 標準一樣, 只不過是一個簡單的字符集表。
四、漢語編碼問題
1)常用漢字字符集
1.GB 13000: 完全等同于ISO 10646-1/Unicode 2.1, 今后也將隨ISO 10646/Unicode的標準更改而同步更改。
2.GBK: 對GB2312的擴充, 以容納GB2312字符集范圍以外的Unicode 2.1的統一漢字部分, 并且增加了部分unicode中沒有的字符。
3.GB 18030-2000: 基于GB 13000, 作為Unicode 3.0的GBK擴展版本, 覆蓋了所有unicode編碼, 地位等同于UTF-8, UTF-16, 是一種unicode編碼形式。 GB18030向下兼容GB2312/GBK。 GB 18030是中國所有非手持/嵌入式計算機系統的強制實施標準。
2)編碼相關問題
早期的計算機使用7位的ASCII編碼,為了處理漢字,程序員設計了用于簡體中文的GB2312和用于繁體中文的big5編碼。GB2312一共收錄了7445個字符,包括6763個漢字和682個其它符號。GB2312支持的漢字太少。1995年的漢字擴展規范GBK1.0。從ASCII、GB2312到GBK,這些編碼方法是向下兼容的,即同一個字符在這些方案中總是有相同的編碼,后面的標準支持更多的字符。在這些編碼中,英文和中文可以統一地處理。
區分中文編碼的方法是高字節的最高位不為0。2000年的GB18030是取代GBK1.0的正式國家標準。該標準收錄了27484個漢字,同時還收錄了藏文、蒙文、維吾爾文等主要的少數民族文字。CJK就是中日韓的意思。Unicode為了節省碼位,將中日韓三國語言中的文字統一編碼。GB13000.1就是ISO/IEC 10646-1的中文版,相當于Unicode 1.1。
綜上所述,字符集逐步的演變,造就了今日計算機、網絡世界字符顯示的互通性和統一性,如果沒有統一的字符集,也就沒有字符顯示表意的準確,因此對字符集的理解、認識對計算機、網絡通信的完整性和準確性是根本;在此基礎上,對不同的字符特點再進行編碼傳輸,效率也才能更高;而在今天移動互聯時代,移動終端已經是網絡的重要出口,在此基礎上,不同國家,不同名族,不同的語言,字符的顯示和傳輸更顯得重要,因此,我們需要持續的關注字符集的更新,演進,通過這些字符集,我們能更快,更好的互聯,互通,更好的通信。