求高人指点,GBK点阵字库的计算公式

2019-12-10 18:13发布

GBK全文本TXT.rar (43.58 KB, 下载次数: 93) 2012-11-19 20:16 上传 点击文件名下载附件
这2个文本文件是按照编码顺序排列的,gbk-gb18030.txt 是 根据 中国GBK码与Unicode码及原字形对照表.txt去掉无关字符排列的.
现在想用牧马字符这类的 文本文件转 点阵工具来转换,
转换结果成功,但是 计算汉字在 点阵库中的地址公式不明

网上找了个这个
我们把第一个字节代表的意义称为区,那么GBK 里面总共有126 个区(0XFE-0X81+1 ),
每个区内有 190 个汉字(0XFE-0X80+0X7E-0X40+2 ),总共就有 126*190=23940 个汉字。我
们的点阵库只要按照这个编码规则从 0X8140  开始,逐一建立,每个区的点阵大小为每个汉字
所用的字节数*190。这样,我们就可以得到在这个字库里面定位汉字的方法:

        当GBKL<0X7F 时:Hp=((GBKH-0x81)*190+GBKL-0X40)*(size*2) ;
        当GBKL>0X80 时:Hp=((GBKH-0x81)*190+GBKL-0X41)*(size*2) ;

    其中GBKH、GBKL 分别代表GBK 的第一个字节和第二个字节(也就是高位和低位) ,size
代表汉字字体的大小(比如16 字体,12 字体等),Hp 则为对应汉字点阵数据在字库里面的起
始地址(假设是从0 开始存放) 。

结果发现,字库前面部分,也就是 gb2312字符之前的,编号 0-6079 的汉字 正常
之后的,就错乱了,不知道公式了
求大侠指点
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
13条回答
cheungman
1楼-- · 2019-12-11 08:56
你好像用的是GBK字库, 所以你要用GBK公式寻址.  我不过是多附送一个GB2312算法, 让一些看到此贴的网友了解一下GB2312字库寻址公式, 我实际测试过的, 应该没问题.
Crack
2楼-- · 2019-12-11 10:51
cheungman 发表于 2012-11-20 17:04
也许你的算法有问题, 试试下边的

//GBK算法

6楼大侠的计算公式perfect
sunplus
3楼-- · 2019-12-11 11:46
标记 地标
kevinmyp
4楼-- · 2019-12-11 16:02
 精彩回答 2  元偷偷看……
keinYe
5楼-- · 2019-12-11 20:33
研究研究!
xzq1019@163.com
6楼-- · 2019-12-12 02:13
已经下载,谢谢,有空弄弄

一周热门 更多>