讀hzk32 HZK16字型檔檔案的資料

2021-10-13 08:25:15 字數 1907 閱讀 6289

關於

hzk16

字型檔檔案的資料

ucdos

中的hzk16

字型檔是符合

gb2312

標準的16×

點陣字型檔,

ucwin gold 1.0

中的hzk16.gbk

繼續保持對

hzk16

的相容性,但是另外還支援

gbk字元,當然,訪問字型檔的方式自然也

有些變化。

hzk16

用的很多,字型檔裡的字型也很不錯,但是漢字數目太大,常用的漢字有大幾千個,加上不常用的

和對應的繁體字,總數在

萬以上,

hzk16

的gb2312-80

支援的漢字有

個,符號

個。其中

一級漢字有

個,按聲序排列,二級漢字有

個,按偏旁部首排列(至於排列方法,我倒不關注,

因為這主要是漢字輸入法所要面臨的問題,而不是點陣漢字顯示關注的物件)。在很多場合是用不到這麼

多漢字字模的,比如嵌入式系統的液晶顯示屏或是像手機、

gba那樣的個人電子通訊工具。有必要利用現

有的hzk16

和hzk16.gbk

檔案中的部分字型,把他們提取出來做為己用。就算是需要使用整個

gb2312

gbk字符集漢字,對這兩個檔案的了解也是必不可少的。

對於hzk16

字型檔裡的

16×漢字(其實只用到了

16×,即

行列,最後

列是空白的,但是

作為gbk

漢字,則使用了最後這一列)來說一共需要

個點來顯示乙個普通的漢字,那麼共需要

個位元組才能達到該目的。

首先,乙個

gb2312

漢字是由兩個位元組編碼的,範圍為

a1a1~fefe

a1-a9

為符號區,b0到

f7為漢

字區。每乙個區有

個字元(當然,這只是編碼的許可範圍,而不是這些編碼都對應有字型,比如符號

區就有很多編碼空白區域)。所以,當接受到了乙個漢字編碼譬如

鹿字,如何在

hzk16

檔案中找到它

對應的個位元組的字模資料呢。

計算方法如下:

c2h-a1h=21h

33d區,因為漢字編碼是從

a1區開始的,所以檔案最前面就是從

a1區開始)

b9h-a1h=18h

24d位,道理如上所述,這就是所謂的區位碼)

21h×

5eh+18h=c36h

5eh就是

94d代表乙個區有

個字元,

c36h

就是說這個字元在

hzk16

裡是第c36h

個)c36h×

20h=186c0h

20h就是

32d,代表乙個字元佔

個位元組,這裡得到的

186c0h就是鹿

字在hzk16

檔案中的偏移位址,從這裡開始之後的

個位元組就是我們要尋找的字元字模)

無敵分界線

上面說過了

gb2312

檔案所對應的

hzk16

檔案,訪問資料是很簡單的,

但是實際上

gb2312

中的個字元看起來很多,

實際使用的時候卻經常會發現我們所要找的字元其實並不包含在裡面,

確實,gb2312

標準是年制訂的漢字字符集標準,只包括了常見的字元,如果我們需要使用更多的漢字,那就必須使

用gbk

來代替它,當然使用的檔案自然是

hzk16.gbk

了。

hzk16理解和簡單使用

一般我們使用16x16的點陣宋體字庫,所謂16x16,是每乙個漢字在縱 橫各16點的區域內顯示的。不過後來又有了hzk12 hzk24,hzk32和hzk48字型檔及黑體 楷體和隸書字型檔。雖然漢字型檔種類繁多,但都是按照區位的順序排列的。前乙個位元組為該漢字的區號,後乙個位元組為該字的位號。每乙個...

基於HZK16的漢字顯示技術

國標漢字字符集 gb2312 80 在漢字作業系統中以漢字型檔的形式提供,並對漢字型檔的結構做了統一規定。漢字型檔的結構如圖 hzk16的gb2312 80支援的漢字有6763個,符號682個。字型檔有94個區,其中一級漢字有3755個,按聲序排列,二級漢字有3008個,按偏旁部首排列。每個區有94...

漢字型檔HZK16的簡單介紹

hzk16 字型檔是符合gb2312標準的16 16點陣字型檔,hzk16的gb2312 80支援的漢字有6763個,符號682個。其中一級漢字有3755個,按聲序排列,二級漢字有3008個,按偏旁部首排列。我們在一些應用場合根本用不到這麼多漢字字模,所以在應用時就可以只提取部分字型作 為己用。hz...