您的位置:首页 > 其它

如何把unicode和点阵字库结合起来

2007-09-21 17:18 302 查看
最近改写了大学时候写的一些代码,是关于点阵字库的,能把给DOS的程序用在MP4上,到是我原来没想到的。

由于工作的需要,又重新研究了研究UNICODE,以及字符编码相关的东西。

http://www.unicode.org/

在上面的网站中,我找到了最新的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和点阵字库结合起来。说的不对的地方,还请大家给出正解,不过我这方法已经用过了,看起来没啥问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: