最近改写了大学时候写的一些代码,是关于点阵字库的,能把给DOS的程序用在MP4上,到是我原来没想到的。
由于工作的需要,又重新研究了研究UNICODE,以及字符编码相关的东西。
在上面的网站中,我找到了最新的UNICODE编码规范。
你可以从网上得到关于每种语言的本地字符集编码范围,比如GBK的编码范围,又比如GB2312的编码范围....
知道了这些范围之后,我们就可以通过枚举的方式将相应的字符用windows的方法TextOut出来。
之后我们可以从字符的显示位置开始取点的颜色,拼成字模。生成到文件当中。
简单的提以下字模的生成,这个比较简单就不多说了吧。
拿DOS程序为例子,简单说说如何来写一个支持UNICODE的字符显示程序。我们说的UNICODE是UTF16,是最常见的UNICODE文本文件,至于UTF8,恐怕要复杂一些。
UNICODE文本文件也分big endian和little endian.通过unicode 文本文件的头2个字节,可以知道,如果是FF FE,则是 little endian,如果是FE FF 则是 big endian。
根据这两个字节,我们才知道文件中unicode码到底是大头儿冲哪儿,相应的,用的时候,我们才能拼出正确的unicode 字符。
通过判断unicode 的范围,我们可以知道到底现在给出的是哪个国家的字符。然后我们切换到相应的unicode 代码页,将unicode 转换成本地字符,当然,这个转换表就是所谓的代码页完成的。
转换成本地字符以后,显示方法就是用这个本地码来计算字符在点阵字库中的位置,然后只要从点阵字库中提取字模,显示在屏幕上相应的位置即可。
简单的描述了一下如何把unicode和点阵字库结合起来。说的不对的地方,还请大家给出正解,不过我这方法已经用过了,看起来没啥问题。