官术网_书友最值得收藏!

1.3.6 字符的編碼

字符數據又稱非數值數據,用以表示一些符號、標記。漢字、圖形和聲音數據也屬非數值數據。

1.美國信息交換標準代碼(ASCII碼)

ASCII碼(American Standard Code for Information Interchange)是美國信息交換標準代碼的簡稱,已被國際標準化組織(ISO)采納,作為國際通用的信息交換標準代碼。ASCII碼是一種西文字符編碼,有7位ASCII碼和8位ASCII碼兩種,7位ASCII碼稱為標準ASCII碼,8位ASCII碼稱為擴展ASCII碼。7位ASCII碼用一個字節(8位)表示一個字符,并規定最高位為0,實際只用到7位,可以表示128(27=128)種字符。ASCII碼包括英文大小寫字母、數字、專用字符、控制字符等;在ASCII碼中,按其作用可分為:34個控制字符,第0~32號及127號,主要包括換行、回車等功能字符;10個阿拉伯數字,第48~57號;52個英文大小寫字母,其中65~90號為26個英文大寫字母,97~122號為26個小寫字母;其余為一些標點符號、運算符號等32個專用符號,同一個字母的ASCII碼值小寫字母比大寫字母大32。ASCII碼的編碼如表1-2所示。在計算機中,對非數值的文字和其他符號進行處理時,要對文字和符號進行數字化處理,即用二進制編碼來表示文字和符號。字符編碼(Character Code)是用二進制編碼來表示字母、數字以及專門符號。

為了適應Internet的需要,進一步擴展計算機中各種語言文字的表達能力,國際標準化組織推出了兼容世界各國文字的Unicode編碼方案。Unicode兼容ASCII碼,采用16位編碼。

表1-2 ASCII碼的編碼表

續表

2.漢字編碼

(1)漢字編碼字符集

我國已公布的漢字信息交換碼標準以及與此有關的字符集標準有:GB 1988—1998《信息技術信息交換用七位編碼字符集》、GB 2311—2000《信息技術字符代碼結構與擴充技術》、GB 2312—1980《信息交換用漢字編碼字符集基本集》。

我國于1981年頒布的《信息交換用漢字編碼字符集基本集》GB 2312—1980(簡稱GB,國標碼)。該字符集把高頻字、常用字和次常用字歸結為漢字基本集(共6763個),再按出現的頻度分為一級漢字3755個(按拼音排序)和二級漢字3008個(按部首排序),字體均為簡化字。這樣,一、二級漢字約占累計使用頻度的99.99%以上?;炯€包括西文字母、日文假名、俄文字母、數字以及一些特殊的圖符記號,共7445個圖形字符作了編碼。

整個編碼表分成94個區,每區94位。每個字符采用兩個字節(高位為0)來表示,區編號為第一字節,位編號為第二字節。第一字節的21H開始為第1區,7EH結束為第94區;第二字節的21H開始為第1位,7EH結束為第94位。整個編碼空間達8836個字符位置,漢字從第16區開始,一個字符的區碼和位碼表示該字符在編碼空間中的位置,兩者可組合成該字符的國標區位碼(簡稱區位碼)。每一字符與區位碼對應的、兩個字節均從21H開始的編碼稱為漢字信息交換碼,簡稱國標碼。例如,16區第1位所對應的漢字“啊”,其區位碼為1001H,而其國標碼為3021H。這樣,區位碼與國標碼之間存在著簡單的對應關系:

字符的國標碼=字符的區位碼+2020H

由此可知,國標碼實際上是由兩個字節的各7位二進制數來表示的,而西文字符是用一個字節來表示的。因此,為解決在計算機內部如何來表示漢字與西文的問題,引進了漢字內部碼(或稱漢字內碼)。目前計算機采用的漢字內碼絕大部分采用“高位為1的兩字節碼”,即把某漢字的國標碼的第一、二字節的最高位均置1,就是該漢字的機內碼(簡稱內碼)。

漢字機內碼=漢字國標碼+8080H

【例1-13】漢字“啊”的國標碼為3021H,求其機內碼。

其機內碼為:3021H+8080H=B0A1H。

由于漢字編碼基本集為簡體字,且字數不多,因此對于中醫藥管理、古籍管理和戶籍管理等領域的計算機處理就顯得不足。為此我國又先后推出了多個漢字編碼輔助集,即第一輔助集GB 12345—1990(簡稱G1)、第三輔助集GB 7589—1987(簡稱G3)和第五輔助集GB 7590—1987(簡稱G5)。

(2)漢字編碼的分類

漢字也是字符,但它比西文字符量多且復雜,給計算機處理帶來了困難。漢字處理技術首先要解決的是漢字輸入、輸出及計算機內部的編碼問題。根據漢字處理過程中的不同要求,有多種編碼形式,主要可分為四類:漢字輸入碼、漢字交換碼、漢字機內碼和漢字字型碼。

①漢字輸入碼

漢字輸入碼又稱外碼。目前,漢字輸入法主要有鍵盤輸入、文字識別和語音識別。鍵盤輸入法是當前漢字輸入的主要方法。漢字輸入碼的作用是讓用戶能直接使用西文鍵盤輸入漢字。

漢字輸入碼必須具有易學、易記、易用的特點,且編碼與漢字的對應性要好。因而,漢字輸入碼的產生往往都結合了漢字某一方面的特點,如讀音、字型等。由于產生編碼時兼顧的漢字特點可以不同,所以編碼方案也有多種,通常將其分為四類:

流水碼:根據漢字的排列順序形成漢字編碼,如區位碼、國標碼、電報碼等,優點是重碼律少,缺點是難于記憶。

音碼:根據漢字的“音”形成漢字編碼,如全拼碼、雙拼碼、簡拼碼等,優點是容易掌握,缺點是重碼律高。

形碼:根據漢字的“形”形成漢字編碼,如王碼、鄭碼、大眾碼等,優點是重碼少,缺點是不容易掌握。

音形碼:根據漢字的“音”和“形”形成漢字編碼,如智能ABC等,將音碼和形碼結合起來,能減少重碼律同時提高漢字輸入速度。

目前我國推出的漢字輸入碼編碼方案已有數百種,受到用戶歡迎的也有數十種,用戶可以根據自己的喜好選擇使用某一種漢字輸入碼。

②漢字交換碼

漢字交換碼(即國標碼)是指在漢字信息處理系統之間或者信息處理系統與通信系統之間進行漢字信息交換時所使用的編碼。設計漢字交換碼編碼體系應該考慮如下幾點:被編碼的字符個數盡量多,編碼的長度盡可能短,編碼具有唯一性,碼制的轉換盡可能方便。

③漢字機內碼

漢字機內碼又稱漢字內碼,它是計算機內部存儲、傳送或運算時使用的代碼,是漢字系統設計的基礎。在計算機系統中,西文字符也有機內碼,一般采用一個字節的ASCII碼表示。每個ASCII碼由7位二進制數表示,在一個字節中最高位為0。而漢字國標碼由兩個字節的ASCII碼組成,每個字節的最高位也是0。這樣,在計算機系統中存儲、傳送或運算時,難以與西文ASCII碼區分。故此,將國標碼中每個字節的最高位置“1”,構成變形“國標碼”,稱為漢字機內碼。例如“歡迎”二字的國標碼為“3B36H-532DH”,而其機內碼為“BBB6H-D3ADH”。

目前,我國使用的漢字機內碼是采用雙字節的變形國標碼。要想實現中西文信息處理徹底兼容問題,理想辦法是盡快貫徹ISO 10646標準。

④漢字字型碼

漢字字型碼用在顯示或打印輸出漢字時產生的字型,該種編碼是通過點陣形式產生的。不論漢字的筆畫多少,都可以在同樣大小的方塊中書寫,從而把方塊分割為許多小方塊,組成一個點陣,每個小方塊就是點陣中的一個點,即二進制的一個位。每個點由“0”和“1”表示“白”和“黑”兩種顏色。這樣就得到了字模點陣的漢字字型碼,如圖1-5所示。

根據對輸出漢字精美程度的要求不同,漢字點陣的多少也不同,點陣的密度越大,漢字輸出的質量也就越好。目前計算機上顯示使用的漢字字型大多采用簡易型漢字,即16×16點陣,這樣每個漢字的漢字字型碼就要占32個字節(16×16÷8=32),書寫時常用十六進制數來表示。打印輸出時使用的漢字字型大多為提高型,如24×24點陣、32×32點陣、48×48點陣、64×64點陣等。

有了漢字字型碼,計算機就能夠將輸入的漢字編碼在統一成漢字內碼存儲后,在輸出時將它還原成漢字。一個漢字信息系統具有的所有漢字字型碼的集合構成了該系統的漢字庫。

(3)各種漢字編碼的關系

從漢字編碼轉換的角度,圖1-6所示顯示了4種編碼之間的關系,其間都需要各自的轉換程序來實現。

圖1-5 24×24點陣

圖1-6 漢字編碼之間的關系

主站蜘蛛池模板: 文水县| 红安县| 贵德县| 三穗县| 社会| 敖汉旗| 巫山县| 遵化市| 天水市| 若羌县| 正宁县| 泊头市| 苏尼特右旗| 湖南省| 铜鼓县| 闽侯县| 新平| 高雄市| 南充市| 沂源县| 辽中县| 林甸县| 澎湖县| 石河子市| 会理县| 开封市| 鄂托克旗| 仙居县| 鄂托克前旗| 霸州市| 义马市| 大邑县| 濉溪县| 高州市| 马龙县| 宜兰县| 辽宁省| 金溪县| 诸城市| 汝南县| 田东县|