漢字編碼表示與顯示

2021-08-26 09:03:44 字數 2186 閱讀 6041

一、漢字的編碼

2023年5月,我國國家標準總局頒布了《資訊交換用漢字編碼字符集》(gb2312-80),簡稱國家標準漢字編碼,也叫國標碼。國標碼共收進標準字元7445個。其中一級漢字3755個,二級漢字3008個,共計6763個漢字。 由於漢字的字元多,乙個位元組即8位二進位制**不足以表示所有的常用漢字。同時為了不與西文的ascii碼混淆,漢字國標碼的每個漢字或符號都使用2個位元組(16位二進位制)**來表示。 西文字元採用乙個位元組表示,即ascii碼,一般只用七位來表示128個字元,而把最高位用作奇偶校驗(或者不用)。

國標碼介紹:在gb2312-80**表中,縱向分為0~93,共94行;橫向也是0~93,共94列。行與列分別用b7b6b5b4b3b2b1七 位二進位製碼表示,第一位元組表示行,第二位元組表示列。其值從0100001到1111110(十六進製制為21-7e)。這正是ascii碼的可列印字元的編 碼範圍。國標碼是將第一位元組和第二位元組連寫而得。由於二進太長,一般用十六進製制表示。

區位碼介紹:在國標gb2312-80中,國標碼除了用雙七位二進位制表示外,還可以表示成區位碼的形式。即在國標**表中,將行號稱為區號,列號稱為位號,分別有94個區和94個位。區號和位號用十進位制表示,不足兩位前面補0。這樣每個漢字或符號都可用4位十進位制表示。區位碼因此可以用來作輸入碼。是漢字輸入的基本編碼方法之一。

機內碼介紹:在計算機中雙位元組漢字與單位元組西文字元混合使用、處理,漢字編碼的各個位元組若不予以特別標識,就會與單位元組的ascii碼混淆不清;為此,將標識漢字的兩個位元組編碼的最高位置為1,這種最高位為1的雙位元組漢字編碼就是中國大陸普遍採用的漢字機內碼,簡稱內碼,是計算機內部儲存、處理漢字所使用的**。

內碼、國標碼、區位碼三者的關係是:

高位元組內碼=高位元組國標碼+80h=區碼+20h+80h=區碼+0a0h=區碼+160

低位元組內碼=低位元組國標碼+80h=位碼+20h+80h=位碼+0a0h=位碼+160

繁體漢字在一些地區和領域仍在使用,國家又制定出相應的繁體漢字字符集,國家標準代號是gb12345-90「資訊交換用漢字編碼字符集——輔助集」,包含了717個圖形符號和6866個繁體漢字。big5是我國台灣地區計算機系統中使用的漢字編碼字符集,包含了420個圖形符號和13070個繁體漢字(不用簡體字)。

二、漢字的字模庫

漢字的輸出主要是指漢字字形的輸出。輸出的方式主要是顯示和列印兩種。漢字輸出時,用乙個點陣來表示乙個漢字。點陣的每個點位只有兩種狀態:有點或無點。若用二進位制**來表示即為該位取值為1 表示有點,取值為0表示無點。漢字的輸出原理與西文的輸出原理是相同的。不同的是漢字筆劃較多,要能很好地表示乙個漢字,起碼需要16×16點陣才行。如果要求字型逼真美觀,點陣的點數還要增加。如用24×24、32×32、48×48等,因此漢字的儲存空間比西文要大很多,需要用大量的儲存空間來存放字模。

描述乙個漢字點陣資訊的二進位制**串稱為漢字的「字模」。所有漢字和各種符號的點陣資訊就組成漢字的「字模庫」(簡稱字型檔)。字模的表示順序為:先從左到右,再從上到下。也就是先畫第一行左上方的8個點,再是右上方的8個點,然後是第二行左邊8個點,右邊8個點,以此類推。

三、漢字的顯示原理

1. 從鍵盤輸入的漢字經過鍵盤管理模組,變換成機內碼。

2. 然後經字模檢索程式,查到機內碼對應的點陣資訊在字模庫的位址。

3. 從字型檔中檢索出該漢字點陣資訊。

4. 利用顯示驅動程式將這些資訊送到顯示卡的顯示緩衝儲存器中。

5. 顯示器的控制器把點陣資訊整屏順次讀出,並使每乙個二進位制位與螢幕的乙個點位相對應,就可以將漢字字形在螢幕上顯示出來。

四、用區位碼獲取漢字的點陣資訊

以16×16的點陣漢字型檔檔案為例。乙個漢字用了256個點共32個位元組表示。漢字共分94區,每個區有94位漢字。機內碼用兩個位元組表示,第乙個位元組儲存區號(qh),為了和ascii碼相區別,範圍從十六進製制的a1h開始(小於80h地為ascii碼字元),對應區碼的第一區;第二個位元組是位號(wh),範圍也從a1h開始,對應某區中的第乙個位碼。這樣,將漢字機內碼減去a0a0h就得到該漢字的區位碼。

從而可以得到漢字在字型檔中的具體位置:

location=(94*(qh-1) + wh-1) * 乙個漢字字模占用的位元組數

對於16×16的點陣漢字型檔,漢字在字型檔中的具體位置的計算公式就是:(94*(qh-1)+wh-1)*32。例如,「房」的機內碼為十六進製制的b7bf,則其區位碼是b7bfh-a0a0h=171fh,轉化為十進位制就是2331,在漢字型檔中的位置就是32*[94*(23-1)+(31-1)]=67136位元組以後的32個位元組為「房」的顯示點陣。

資訊編碼表示

位元 bit 二進位制位 是計算中表示資訊的資料編碼的最小單位,為一位二進位制編碼 0 or 1 位元組 byte 是儲存器系統最小單位,為八位二進位制編碼 1 byte 8 bit 我們電子裝置中的b,kb,mb,gb,tb之間的關係 b即byte 8 bit 1 tb 2 gb 1024 gb ...

Unicode 漢字編碼表

1 unicode編碼表 unicode只有乙個字符集,中 日 韓的三種文字占用了unicode中0x3000到0x9fff的部分 unicode目前普遍採用的是ucs 2,它用兩個位元組來編碼乙個字元,比如漢字 經 的編碼是0x7ecf,注意字元編碼一般用十六進製制來 表示,為了與十進位制區分,十...

資料的編碼表示

資料的編碼表示 1 基本概念 1 編碼 計算機要處理的資料除了數值資料以外,還有各類符號 圖形 影象和聲音等非數值資料。而計算機只能識別兩個數字。要使計算機能處理這些資訊,首先必須將各類資訊轉換成 0 和 1 表示的 這一過程成為編碼。2 資料 能被計算機接受和處理的符號的集合都稱為資料。資料和資訊...