嵌入式Linux系统下的汉字处理和显示.docVIP

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式Linux系统下的汉字处理和显示 本文阐述在嵌入式Linux环境下通过汉字编码的转换,汉字字体的提取,实现对汉字的处理和显示。所提出的解决方案,在嵌入式Linux环境下,可以不依赖于MicroWindows、MiniGUI等嵌入式图形界面接口软件实现汉字的处理与显示。 1 汉字编码的处理 由于传统的计算机字符内码ASCII码最多只能包含256个字符,只能包含英文字符和其他常用字符,而不能包含其它语言的字符,尤其是汉字。因此不同的组织机构又制定了包含汉字的字符编码标准。GB编码是由我国政府颁布的国家标准,经过不断扩充,形成了GB2312、GB13000(GBK)、GB18030标准;BIG-5码是主要由使用繁体字的地区采用的标准;Unicode编码是由Unicode协会为包含汉字在内的各种语种字符制定的统一字符集标准,同时兼容于国际标准ISO 10646,但是不兼容GB编码。Unicode编码又有UTF8等实现形式,一般Unicode指UCS-2规范。 在嵌入式Linux系统下使用的汉字,其来源大致可以分为: 1.程序字符串常量中的汉字; 2.文本文件或其它资源文件。 因为各种源文件编辑器、文本文件编辑器或资源文件来源的不同、网络环境的不同。因此嵌入式Linux系统下使用的汉字也体现为各种不同的编码格式,需要进行编码格式的转换,才能够对汉字进行正确的处理。 嵌入式Linux系统应用开发所使用的程序源文件和文本文件,一般是来自于Windows操作系统下的编辑工具,或Linux桌面操作系统下的编辑工具。Windows操作系统下的常用文本编辑器,如Notepad、UltraEdit等,缺省的文件编码保存格式是ASCII码,其中的汉字以GB编码保存。Linux XWindow下的图形界面文件编辑器gEdit,也以ASCII码作为缺省的文本保存编码,其中的汉字以UTF-8编码保存。 嵌入式Linux系统所使用的程序编译工具,如gcc、g++系列工具,按照ASCII码格式对源文件进行分析和编译,对于字符串常量中的字符,则不加区别,按原有编码格式编译进入目标文件。 Montavista Linux提供了iconv函数族,用于将字符串在各种编码之间进行转换。使用iconv函数族,需要包含iconv.h头文件。Montavista Linux的iconv函数族支持ASCII编码、GB系列编码、BIG-5编码、UNICODE编码、UTF8等编码格式的相互转换。在Linux命令行方式下,可以使用iconv –list命令查看iconv函数族所支持的编码格式列表。 部分程序代码如下: 以下一段代码实现从GB2312编码的字符串sin到UNICODE编码的字符串sout的转换: /*打开转换句柄*/ if ((c_pt = iconv_open (GB2312, UNICODE)) == (iconv_t) (-1)) return -1; /*进行转换*/ ret = iconv (c_pt, sin, lenin, sout, lenout); if (ret == -1) return -1; /*关闭转换句柄*/ iconv_close (c_pt); 2 汉字的显示 在嵌入式应用中,经常需要在嵌入式设备的显示屏上进行汉字显示。现在,已经有了各种各样的汉字字体可供计算机应用系统选择,使得汉字的显示呈现出丰富多彩的外观。为了在嵌入式Linux系统中使用这些字体,需要将嵌入式应用所得到的汉字编码转换成为字体文件所需要的索引码,并由索引码提取得到汉字显示图元,转换为指定尺寸的显示位图,在嵌入式显示屏上进行显示。 在程序中操作字体文件,需要根据字体文件的格式实现。通过FreeType 2软件,实现了对于各种字体文件统一的、独立于字体文件类型的GPL条款的开源软件,有占用空间小、可定制的特点,较适合于嵌入式应用。FreeType 2缺省支持TrueType、Type 1 等常见字体格式。 下面以TrueType字体为例,说明字体文件在嵌入式Linux系统下的应用。TrueType是由AppleComputer公司和Microsoft公司联合提出的一种数学字形描述技术。它用数学函数描述字体轮廓外形采用几何学中二次B样条曲线及直线来描述字体的外形轮廓无论放大或缩小,字符总是光滑的UCS-2规范进行索引,因此,对于来自源文件字符串常量中的汉字或非Unicode编码UCS-2规范的文本文件、资源文件,或其它汉字字符来源。需要使用上面所述的编码转换方法,将原汉字编码转换为UNICODE的编码格式,再根据得到的UNICODE编码从TrueType字体文件提取得到汉字图元,转换为汉字位图点阵,进行显示。 部

文档评论(0)

ywqa203 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档