GB2312 GBK編碼規則及微控制器漢顯字型檔演算法

2021-05-24 01:20:29 字數 785 閱讀 9565

最近整理舊物時,翻到了5年前的畢業設計,翻翻覺得還有些用,寫個部落格吧。

在一般的微控制器漢顯系統中,都會用到gb2312字型檔,也有少數的需要gbk字型檔。

「機內碼」:英文本元在pc機中以單位元組表示,漢子以最高位為1的雙位元組表示,可以用以下c程式來驗證機內碼(tc中執行):

main()

gb2312碼是國家標準漢子資訊交換用編碼,根據機內碼將漢子分為94個區,對應第一位元組的低7位,每個區94個位,對應第二位元組的低7位,並且在機內碼的基礎上減去0x20,即每個漢子的機內碼兩個位元組分別減去0xa0即得到區位碼,見下表。

gbk編碼向下與gb2312編碼相容,向上支援iso10646.1國際標準

漢子點陣字型檔:現在用得最多的點陣字型檔為16*16(對應asc為16*8)、32*32(對應asc為32*16),取點的方式有多種,大致有:

順序行列式

逆序行列式

順序列行式

逆序列行式

順序逐行式

逆序逐行式

順序逐列式

逆序逐列式

比較常用的是順序行列式(ucdos中採用的模式)

字摸入口計算公式:

gb2312:

charpos := (高8bit - 0xa1)*94 + (低8bit - 0xa1)) :* 32

gbk:

charpos := ((高8bit - 0x81)*191 + (低8bit - 0x40)) * 32

asc:

(ascii碼 - 0x20) * 16; 8x16點陣的(如果是全asc點陣不要減0x20)

GB2312 GBK與UTF 8的區別

首先,我們要明白,gb2312 gbk 和utf 8 都是一種字元編碼,除此之外,還有好多字元編碼。只是對於我們中國人的 來說,用這三種編碼 比較多。簡單的說一下,為什麼要用編碼,在計算機內,儲存文字資訊用 asc ii 碼,每乙個字元對應著唯一的 ascii 碼。最初計算機是由美國發明的,他們也用...

GB2312 GBK與UTF 8的區別

首先,我們要明白,gb2312 gbk和utf 8都是一種字元編碼,除此之外,還有好多字元編碼。只是對於我們中國人的 來說,用這三種編碼比較多。簡單的說一下,為什麼要用編碼,在計算機內,儲存文字資訊用asc ii碼,每乙個字元對應著唯一的ascii碼。最初計算機是由美國發明的,他們也用的是鍵盤和上面...

GB2312 GBK的點陣字型檔建立與索引

以漢字 啊 為例,它的的機內碼為0xb0a1,0xb0為機內碼高位元組,0xa1為機內碼低位元組 gb2312收錄簡化漢字及符號 字母 日文假名等共7445個圖形字元,其中漢字佔6763個。gb2312規定 對任意乙個圖形字元都採用兩個位元組表示,每個位元組均採用七位編碼表示 習慣上稱第乙個位元組為...