思路:
前篇已经熟悉了 ASCII码 字模的叠加,其实汉字的叠加与ASCII是一样的思路。不过就是 字典(字库)不同,表示的方法不同而已。相同的还是 计算偏移量,利用偏移量从 字典中 获取想要的字符。不清楚的请移步上篇
上面说到,字库与字库存储的方法是不一样的,我用的是 GB2313。所以我们得先去学习相关知识。
请移步:了解 GB2313
区别步骤:
生成 GB2312 字库:
将字符集类型改为 GB2312 即可。
获取区位码
我们要计算GB2312字符的偏移量,就需要 字符的区位码。这个我们利用编辑器(VScode)就可以使存储中文的变量自动转化为区位码。
点击右下方 UTF-8:
点击通过编码保存:
设定为 GB2312:
这样我们就可以获取单个中文的区位码了
char *word = "好";
int offset[] = {0};
short AreaCode = word[0] & 0xff;
short BitCode = word[1] & 0xff;
printf("AreaCode = %x,BitCode = %x\n",qm,wm);
在通过公式就可计算出 偏移量
offset[0] = (94 * (AreaCode - 0xa1) + (BitCode - 0xa1)) * 512;
得到偏移量之后的步骤就与上篇博文相一致了,这里就不过多介绍了(顶不住了…)。
最终实现图
系列结束 over~