如何把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和点阵字库结合起来。说的不对的地方,还请大家给出正解,不过我这方法已经用过了,看起来没啥问题。
由于工作的需要,又重新研究了研究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和点阵字库结合起来。说的不对的地方,还请大家给出正解,不过我这方法已经用过了,看起来没啥问题。
相关文章推荐
- C++: std::string 与 Unicode 如何结合?
- C++: std::string 与 Unicode 如何结合?
- C++: std::string 与 Unicode 如何结合?
- 如何将蓝牙和802.11结合起来提供高速无线连接
- 如何将SOA和虚拟化两者结合起来
- 如何利用SEO技术和现代项目结合起来
- C++: std::string 与 Unicode 如何结合?
- C++: std::string 与 Unicode 如何结合?
- 如何把作好的CSS文档与HTML结合起来运用
- 如何将读书与自己的生活工作结合起来?
- CSS和html如何结合起来——选择符及优先级
- CxImage与OpenGL结合,用于读入多种格式的纹理以及用来把屏幕保存为各种格式的图像文件。 关于CxImage的文章,网上有许多,这里只介绍如何把CxImage与OpenGL结合起来,用于读
- 如何将机器人与其他行业更好地结合起来
- 如何将多态与现实应用结合起来
- 工作心得(二)——如何将Nexus本地仓库和Maven结合起来
- C++: std::string 与 Unicode 如何结合?
- 电子邮件营销与微信营销如何结合起来
- C++: std::string 与 Unicode 如何结合? 关键字:std::string Unicode 转自:http://www.vckbase.com/document/viewdoc
- 如何将蓝牙和802.11结合起来提供高速无线连接
- 如何把BDD,ATDD和TDD结合起来?