国产不卡在线观看视频_日本高清久久_天天操天天干天天摸_一区二区三区视频在线

歡迎來到通信人在線![用戶登錄] [免費注冊]

計算機中的漢字編碼:內碼與外碼

瀏覽:19980  來源:通信人在線  日期:2023-02-04

我們知道,計算機是西方人首先發明和使用的,他們理所當然地解決了拼音文字在計算機上的處理問題。而漢字是世界上惟一正在使用的表意文字,數量眾多,如何在計算機上處理好漢字是對這一古老文化的挑戰。計算機漢字處理技術,對推廣我國計算機應用及加強國際交流有著十分重要的現實意義。

在計算機上處理漢字要比處理西文字符復雜得多,處理漢字首先要確定漢字編碼字符集的問題,并要解決漢字的輸入、傳輸、存儲、顯示、輸出等一系列問題。在處理過程中每一個環節需要各自不同的編碼,因此產生了漢字編碼系統和漢字處理技術,也即計算機中的漢字編碼中稱之為的內碼和外碼。

一、關于內碼

內碼是指存儲在計算機內的相關漢字編碼,以供外碼所調用或提取。計算機中的漢字編碼中的內碼,通常涉及到的類型是區位碼、交換碼(也有稱國標碼)及機內碼等。之所以涉及到這些編碼,是因為早期對字符集編碼時采用的編碼方式不同,由早期的7位編碼過渡到后期的8位編碼,導致了7位編碼與8位編碼的共存,就涉及到它們間的兼容問題。另外,漢字字形碼和漢字地址碼也屬于內碼的類型。

1區位碼

“區位碼”的來歷源自于我國發布的第一個漢字編碼字符集GB/T 2312-1980《信息交換用漢字編碼字符集 基本集》。漢字編碼字符集是用于漢字信息處理、漢字通信等系統之間的信息交換。該字符集是對我國最常用的6763個漢字進行二進制編碼,采用雙字節編碼表示。其中,前面的字節為第一字節,后面的為第二字節,它們構成一個94×94的二維平面,即分成94行,94列,行號稱為區號,從1~94編號,由第一字節標識;列號稱為位號,也是從1~94編號,由第二字節標識。每一個漢字或圖形符號在碼表中都有各自的位置,字符的位置用它所在的區號(行號)及位號(列號)來表示,如下表1-1所示。因此,稱之為漢字的區位碼。區位碼是漢字在計算機存儲與交換的唯一數字代碼,如漢字“大”的區號是20,位號是83,它的區位碼是20-83,用雙字節二進制碼表示為00010100 01010011

1-1GB/T 2312-1980字符集的區位構成

欲詳細了解GB/T 2312-1980標準具體規定內容的請進入

然而,在該漢字編碼字符集(GB/T 2312-1980)中不僅對6763個漢字設置了區位碼,同時還對682個非漢字圖形字符(也稱圖形符號),其中包括有ASCII字符集中的圖形符號,被置于1~9區(漢字圖形字符是置于16~87區的),而在這里,這些圖形符號是按照GB/T 2311-80ISO/IEC 2022)規定的7位編碼擴充方法,原ASCII字符集(ISO/IEC 646,等同采用為國內標準是GB/T 1988-80)中是采用7位編碼的(目前在計算機內的ASCII中的圖形字符就是7位編碼)。這就有可能存在7位編碼擴充與7位編碼的沖突的問題。

欲詳細了解ASCII編碼字符集介紹的請進入

需要指出的是:區位碼源自于GB/T 2312,原因是它采用了區位編碼方式。然而我國目前使用的權威漢字字符集是GB 18030《信息技術 中文編碼字符集》。它采用的是單字節、雙字節和四字節多字節編碼方式,其中雙字節編碼部分包含了GB/T 2312所編碼的圖形字符(漢字和符號),關鍵是其雙字節編碼已不再采用94×94的區與位方式編碼了。

欲詳細了解GB 18030中文編碼字符集的請進入

2、交換碼(國標碼)

相對于區位碼,為了避免與ISO 2022中用于通信的控制字符(0x00~0x1F)和空格字符(0x20)發生沖突,每個漢字的區號和位號必須分別加上32(即二進制0010 0000)。經過這樣處理得到的代碼稱為漢字的“交換碼”。因此,“大”字的交換碼是:00110100 01110011

也就是說,交換碼(國標碼)相當于將區位碼向后偏移了32,以避免與ASCII字符中的控制符號(具有數據的控制功能,不可顯示的符號字符,包括空格字符)相沖突。之所以如此,是因為GB/T 2312沒有對ASCII字符中的33個具有控制功能的符號進行重新編碼。為什么是后偏移了32而不是33,這是因為區位碼中的區編號和位編號都是從1開始計數的,不像ASCII碼是從0開始計數的。

3、機內碼

當區位碼變換為交換碼(國標碼)后,仍然不能在計算機內使用(存儲)。因為文本中的漢字字符與西文字符經常混合在一起使用,漢字信息如不予以特別的標識,它與單字節的標準ASCII碼就會混淆不清。還有因為國標碼雖然相較于區位碼避開了ASCII碼中(0~32的前33個控制字符),但并沒有避開ASCII碼中的英文字母、數字和符號等可顯示可打印的圖形字符(33~126,共94個字符)。

于是,常采用的方法之一就是把一個漢字看成兩個擴展ASCII碼,使表示GB 2312漢字的兩個字節的最高位都等于“1”。相當于每個字節都再加上128(即二進制的1000 0000;十六進制的0x80)。這種高位為“1”的雙字節(16位)漢字編碼就稱為GB 2312漢字的“機內碼”,有時簡稱內碼。目前,這種表示方式已經成為GB 23122漢字內碼的一種事實上的標準。上面所說的“大”字的機內碼是:10110100 11110011B4F3)。

下式和下圖1-3給出了區位碼、交換碼與機內碼間的關系,以供參考。

機內碼 = 交換碼 + 1280x80= 區位碼 + 320x20+ 1280x80= 區位碼 + 1600xA0

1-3:區位碼、交換碼與機內碼間的關系

4、其它內碼:字形碼、漢字地址碼

漢字字形碼和漢字地址碼也都是屬于存儲在計算機內的漢字編碼,用以漢字的輸出(即顯示、打印等)。

字形碼就是表示漢字字形信息(結構、形狀、比畫等)的編碼,它的實現方法通常分為點陣形式和矢量形式,點陣形式是日常使用較多的形式,此時,字形碼是確定一個漢字字形點陣的代碼,也叫字模或漢字輸出碼。字形碼就是這個漢字字形的點陣代碼根據顯示或打印質量的要求,漢字字形編碼就有16×1624×2432×3248×48等不同密度的點陣編碼。點數越多,顯示或打印的字體就越美觀,但編碼占用的存儲空間也越大。如16×16點陣的字形碼表示漢字是16行,每行16個點,一個點需要1位二進制代碼,16個點需用16位二進制代碼(即2個字節),共16行,所以需要16行×2字節/=32字節,即16×16點陣表示一個漢字,字形碼需用32字節。

當一個漢字需要輸出(顯示或打印)時,需要將漢字的機內碼(如上述)轉換成字形編碼。漢字的字形點陣要占用大量的存儲空間,通常將所有漢字字形編碼集中存放在計算機的外存儲卡(器)中,稱為“字庫”,不同字體(如宋體、楷體等)對應不同的字庫。需要時才到字庫中檢索漢字并輸出,為避免大量占用寶貴的內存空間,又要提高漢字的處理速度,通常將漢字字庫分為一級和二級,一級字庫在內存,二級字庫在外存。

我國發布有大量的關于點陣字形碼的編碼國家標準(GB/T)及電子行業標準(SJ/T),這些標準是針對不同漢字字體、不同點陣、不同漢字字符集(如GB/T 2312GB/T 13000GB 18030等)而進行編碼規范的。如GB/T 25899.1-2019《信息技術 通用編碼字符集(基本多文種平面) 漢字32點陣字型 1部分:宋體》,它規定的是GB/T 13000字符集和GB 18030字符集中的漢字的32點陣宋體字型,舉例“永”字的示意圖如下圖1-4所示。

1-432點陣漢字“永”的宋體字型示意圖

由上述字形碼介紹可知,字形碼是存放在外存儲器里,每一個字模都有自己的存放地址,以便計算機提取字模之用。確定字形碼地址的二進制編碼就是漢字地址碼。

二、關于外碼:漢字輸入碼

對于計算機上漢字編碼的外碼,主要是指計算機漢字輸入碼。計算機使用者通過漢字輸入碼將漢字輸入到計算機中進行漢字信息的處理。我們知道,計算機輸入漢字的方法主要有兩種途徑:一種是自動識別輸入,包括漢字的自動識別和漢語言語的自動識別;另一種就是漢字鍵盤輸入。而漢字鍵盤輸入則是人們常用的方法,這里重點介紹計算機鍵盤輸入編碼。

計算機鍵盤是由西方人根據西方文字的特點而設計,已經成為標準鍵盤,或稱通用鍵盤。那么對于漢字的鍵盤輸入,只有在該通用鍵盤上,結合漢字的特點(部首、部件、筆順、注音),通過編碼將鍵盤上相應的按鍵一一對應,而轉換(調用或提取)成計算機中的漢字內碼(區位碼及機內碼)。因此,漢字鍵盤輸入碼的作用:一是利用漢字的形、音及其它相關信息把通用鍵盤相應鍵位(一個或一組)的綁定;二是建立與計算機中相應漢字機內碼的對應關系。

漢字鍵盤輸入碼,對于計算機使用者來講,重點是要掌握漢字信息與鍵位的對應方法,這就要漢字鍵盤輸入碼的編碼方法易學易用。而我們日常常用的輸入編碼方法有:數字編碼、字音(拼音)編碼(如全拼輸入法、雙拼輸入法等)、字形(部首、筆畫及部件)編碼(如五筆輸入法、筆畫輸入法等)、字音字形結合編碼、智能編碼等等,它們各自的特點詳見于下表2中。

2:常用漢字鍵盤輸入編碼方法的特點

由于篇幅問題,這里不對每種漢字鍵盤編碼輸入法進行介紹。關鍵是,我國國家標準GB/T 19246《信息技術 通用鍵盤漢字輸入通用要求》規定了信息技術產品中用通用鍵盤進行漢字輸入時的通用要求,適用于基于通用鍵盤進行漢字輸入的漢字輸入法編碼方案、漢字輸入技術及其產品。對于上述提到的各種漢字編碼輸入法均應滿足GB/T 19246規定的要求,包括總體性能要求(易學性、平均碼長、重碼字詞鍵選率)、鍵位設置要求、編碼字匯(漢字編碼字符集)要求、編碼規范( 漢字部首序與筆順序及部件規范、拼音規范等)等等。

欲詳細了解GB/T 19246標準具體要求的請進入

三、說明

由于我國的漢字是一種表意文字,因此其數量巨大,僅2022年版GB 18030中收納編碼的漢字的數量就達87887,如此之多的漢字計算機的信息處理(包括輸入、存儲、交換、傳輸、顯示及輸出等)是一個龐大的系統工程,因此需要其計算機漢字編碼系統,包括其相應的內碼和外碼的建立、結合和使用,下圖3示意了計算機漢字編碼系統的一個總體關系結構,亦可以了解其內碼和外碼的關系。

3:計算機漢字編碼系統總體關系結構示意圖

另外,上述主要介紹的是計算機漢字的編碼,因為漢字字符是重點。事實上,全面的說,應稱為計算機中文的編碼,因為它已包括了可顯示/可打印的圖形符號字符(標點符號、字母符號、數字及序號符號等等);同時包括我國少數民族的文字字符。

欲進一步了解我國字符編碼字符集介紹請進入

附錄
百度云服務器
© 2004-2025 通信人在線 版權所有 備案號:粵ICP備06113876號 網站技術:做網站