嵌入式设备中多语言显示方法及装置的制作方法

文档序号:6336670阅读:433来源:国知局
专利名称:嵌入式设备中多语言显示方法及装置的制作方法
技术领域
本发明涉及通信领域,具体而言,涉及一种嵌入式设备中多语言显示方法及装置。
背景技术
随着技术的发展和生活水平的提高,越来越多的工业控制、医疗、通讯、消费等电子产品日趋智能化,以微处理器为核心的嵌入式系统得到日益广泛的应用。相当多的电子设备,如各类终端、仪表、高级玩具、家电控制单元等,由于成本和体积的要求,都是典型的单片机构成的小型设备;为了提升这些设备的易用性和性能,都配置了按键和显示设备 (如小型液晶显示模块IXD (Liquid Crystal Display,液晶显示)),进行人机交互,方便用户的操作。越来越多的各类嵌入式电子设备被销售到世界各地,在这些设备上,实现当地语言的显示和交互(而不仅是中文或英文),无疑越来越重要和紧迫。在绝大多数的嵌入式电子设备中,对于多语言的显示,一股有三种方法存贮空间扩充、编码替换、图标显示。如果要显示中文、英文以外的字符,需要收集该字符集的全部符号或文字,这时, 可以直接采用单一码UNICODE编码方式,这种编码完整,可以显示几乎所有国家和地区的文字和符号,通用性好;但是需要的存贮空间也非常大,在一些嵌入式设备中受资源限制不可实现或者引起成本的急剧上升。例如,UNICODE的变长字符编码UTF-8就是在互联网上使用最广的一种UNICODE的实现方式,其对于每个汉字需要3个字节来表示,超过普通信息交换用汉字字符集-基本集GB2312-80编码的2字节,多占用50 %的空间;而直接使用 2 字节的 UNICODE 编码,又无法和 ASCII (American Standard Code for Information Interchange,美国信息互换标准代码)编码兼容,且不能直接用于很多高级语言,如C语言的字符串应用和处理。另外,字模的选择单一,其他语言的字符和复杂的汉字一样,占用相同的显示点阵,造成嵌入式设备很有限的显示区域内,无法显示更多、更丰富和准确的内容。编码替换是一个通用的方法,对于存贮空间也不需更多的要求。其基本思想是用其他语种的字符,来替换掉未用的用户自建字模区CGRAM或字模存储用空间CGROM字符空间。如ASCII编码中的0 X 00 0 X IF禾口 0 X 80 0 X 9F区域,这段区域通常未用,可以用于其他语言的字符。成本也很少,但是缺陷很明显,未用的空间只有64个,导致能显示的语言容量很少。图标显示介于上述两个方法之间,需要少量的空间扩展,但是可以显示多种语言的字符。图标显示基本上是把其他语言字符集中的每个字符,以一个指定的编号替换,比如,西里尔文中的“ >K,,用编号5替换,“3”用编号6替换,“N”用编号7替换等等。要显示这些字符,即显示编号5、6、7对应的图标内容即可。这也是一种常用方法,但是缺点也是很明显的,编号固定,软件代码中不可直观,同时软件的可维护行、以及扩展性非常不好。针对相关技术中多语言的显示方式能显示的语言容量少、可维护行、以及扩展性不好的问题,目前尚未提出有效的解决方案。

发明内容
本发明旨在提供一种嵌入式设备中多语言显示方法及装置,以解决相关技术中多语言的显示方式能显示的语言容量少、可维护行、以及扩展性不好的问题。根据本发明的一个方面,提供了一种嵌入式设备中多语言显示方法,包括根据嵌入式设备的编码规则为将显示的语言选择对应的编码,其中,所述嵌入式设备的编码规则为一个字节的编码用于标识通用符号,两个字节的编码用于标识语言的字符,所述通用符号包括英文、数字和标点;将所述对应的编码根据编码规则转换为对应的语言符号,并显示在嵌入式设备的显示屏上。优选的,所述一个字节的编码规则兼容美国信息互换标准代码ASCI I编码规则, 所述两个字节的编码规则兼容信息交换用汉字字符集-基本集GB2312-80编码规则。优选的,在O-OXFFFF的空间段内,选择0X00-0X7F存储兼容所述ASCII编码规则的单字节编码;选择在0X80000-0XFFFF存储所述兼容GB2312-80编码规则的双字节编码。优选的,所述选择在0X80000-0XFFFF存储兼容所述GB2312-80编码规则的双字节编码,包括在0XA1A1-0XFFFF中存储支持汉字的所述GB2312-80编码;在0X8000-0XA0FF、 0XFF00-0XFFFF中存储支持除汉字外的其他语言的编码。优选的,所述在0X8000-0XA0FF、0XFF00-0XFFFF中存储支持除汉字外的其他语言的编码,包括除汉字外的其他语言的编码采用通用字符集UCS2编码规则时,利用偏移规则实现汉字外的其他语言的编码转换为采用所述嵌入式设备的编码规则的编码。优选的,所述除汉字外的其他语言的编码本来采用UCS2编码规则时,利用偏移规则实现汉字外的其他语言的编码转换为采用所述嵌入式设备的编码规则的编码,包括原语言字符UCS2编码Code中,双字节包括高字节HiCode、低字节LoCode ;若所述原语言字符UCS2编码Code范围在0X80 0X1FFFF,则转换后的编码存储于0X8000-0X9FFF,所述偏移规则包括UCS2编码Code+0X8000 ;若所述LoCode为0X00 ;则转换后的编码存储于 0XA000-0XA0FF,所述偏移规则包括利用所述HiCode进行换码,得到OXAOOO+HiCode ;若所述LoCode为0X22 ;则若转换后的编码存储于0XFF00-0XFFFF时,所述偏移规则包括利用所述HiCode进行换码,得到OXFFOO+HiCode。优选的,所述将所述对应的编码根据编码规则转换为对应的语言符号,并显示在嵌入式设备的显示屏上,包括确定所述语言符号显示的字模的型号,记录特殊符号,所述特殊符号显示的字模的型号超出预设范围;将所述特殊符号的字模中不含信息量的区域去除,直至其显示的字模的型号未超出预设范围。优选的,将所述特殊符号的字模中不含信息量的区域去除,包括若将所述特殊符号的字模中不含信息量的区域全部去除,其显示的字模的型号仍超出预设范围时,将所述特殊符号的字模中含信息量低于预设信息量域值的区域去除,直至其显示的字模的型号未超出预设范围。根据本发明的另一方面,提供了一种嵌入式设备中多语言显示装置,包括选择模块,用于根据嵌入式设备的编码规则为将显示的语言选择对应的编码,其中,所述嵌入式设备的编码规则为一个字节的编码用于标识通用符号,两个字节的编码用于标识语言的字符,所述通用符号包括英文、数字和标点;显示模块,用于将所述对应的编码根据编码规则转换为对应的语言符号,并显示在嵌入式设备的显示屏上。
优选的,所述选择模块包括第一选择子模块,用于在O-OXFFFF的空间段内, 选择0X00-0X7F存储兼容ASCII编码规则的单字节编码;第二选择子模块,用于选择在 0X80000-0XFFFF存储兼容GB2312-80编码规则的双字节编码。优选的,所述第二选择子模块还用于在0XA1A1-0XFFFF中存储支持汉字的所述 GB2312-80编码;在0X8000-0XA0FF、0XFF00_0XFFFF中存储支持除汉字外的其他语言的编码。优选的,所述第二选择子模块还用于除汉字外的其他语言的编码采用UCS2编码规则时,利用偏移规则实现汉字外的其他语言的编码转换为采用所述嵌入式设备的编码规则的编码。优选的,所述显示模块包括确定子模块,用于确定所述语言符号显示的字模的型号,记录特殊符号,所述特殊符号显示的字模的型号超出预设范围;去除子模块,用于将所述特殊符号的字模中不含信息量的区域去除,直至其显示的字模的型号未超出预设范围。优选的,所述去除子模块还用于若将所述特殊符号的字模中不含信息量的区域全部去除,其显示的字模的型号仍超出预设范围时,将所述特殊符号的字模中含信息量低于预设信息量域值的区域去除,直至其显示的字模的型号未超出预设范围。在本发明实施例中,根据嵌入式设备的编码规则为将显示的语言选择对应的编码,其中,嵌入式设备的编码规则为一个字节的编码用于标识通用符号,两个字节的编码用于标识语言的字符,通用符号包括英文、数字和标点;将对应的编码根据编码规则转换为对应的语言符号,并显示在嵌入式设备的显示屏上。针对目前的各类多语言显示技术的不足,以及针对典型的嵌入式小型显示设备的应用,以巧妙的编码方式,实现了多种语言的显示,软件代码可视、直观化,可维护行好,同时可以非常轻松地扩展和支持任意语言。另外, 本发明实施例通用、简捷,是一个非常实用的、优秀的解决方案,适用范围非常广,测控、医疗、通讯、仪表、高档玩具、家电、终端等单片机构成的小型设备,都可以使用,前景广大。


此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中图1是根据本发明实施例的嵌入式设备中多语言显示方法的处理流程图;图2是根据本发明实施例的将对应的编码根据编码规则转换为对应的语言符号, 并显示在嵌入式设备的显示屏上的处理流程图;图3是根据本发明实施例的嵌入式设备中多语言显示装置的结构示意图;图4是根据本发明实施例的选择模块的结构示意图;图5是根据本发明实施例的显示模块的结构示意图。
具体实施例方式下面将参考附图并结合实施例,来详细说明本发明。下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。相关技术中多语言的显示方式能显示的语言容量少、可维护行、以及扩展性不好,为解决上述技术问题,本发明实施例提供了一种嵌入式设备中多语言显示方法,其处理流程如图1所示,包括步骤102、根据嵌入式设备的编码规则为将显示的语言选择对应的编码,其中,嵌入式设备的编码规则为一个字节的编码用于标识通用符号,两个字节的编码用于标识语言的字符,通用符号包括英文、数字和标点;步骤104、将对应的编码根据编码规则转换为对应的语言符号,并显示在嵌入式设备的显示屏上。在本发明实施例中,根据嵌入式设备的编码规则为将显示的语言选择对应的编码,其中,嵌入式设备的编码规则为一个字节的编码用于标识通用符号,两个字节的编码用于标识语言的字符,通用符号包括英文、数字和标点;将对应的编码根据编码规则转换为对应的语言符号,并显示在嵌入式设备的显示屏上。针对目前的各类多语言显示技术的不足,以及针对典型的嵌入式小型显示设备的应用,以巧妙的编码方式,实现了多种语言的显示,软件代码可视、直观化,可维护行好,同时可以非常轻松地扩展和支持任意语言。另外, 本发明实施例通用、简捷,是一个非常实用的、优秀的解决方案,适用范围非常广,测控、医疗、通讯、仪表、高档玩具、家电、终端等单片机构成的小型设备,都可以使用,前景广大。实施时,为提高本发明实施例的通用性,一个字节的编码规则可以兼容ASCII编码规则,两个字节的编码规则可以兼容GB2312-80编码规则。实施时,较优的,在O-OXFFFF的空间段内,选择0X00-0X7F存储兼容ASCII编码规则的单字节编码;选择在0X80000-0XFFFF存储兼容GB2312-80编码规则的双字节编码。选择在0X80000-0XFFFF存储兼容GB2312-80编码规则的双字节编码,可以包括 在 0XA1A1-0XFFFF 中存储支持汉字的 GB2312-80 编码;在 0X8000-0XA0FF、0XFF00-0XFFFF 中存储支持除汉字外的其他语言的编码。当然,在具体实施时,还可以采用其他存储方式, 根据具体情况而定。实施时,为提高本发明实施例的通用性,在0X8000-0XA0FF、0XFF00-0XFFFF 中存储支持除汉字外的其他语言的编码,包括除汉字外的其他语言的编码本来采用 UCS2 (UniversalCharacter Set 2,通用字符集幻编码规则时,利用偏移规则实现汉字外的其他语言的编码转换为采用嵌入式设备的编码规则的编码。除汉字外的其他语言的编码本来采用UCS2编码规则时,利用偏移规则实现汉字外的其他语言的编码转换为采用所述嵌入式设备的编码规则的编码,包括原语言字符UCS2编码Code中,双字节包括高字节HiCode、低字节LoCode ;若原语言字符UCS2编码Code范围在0X80 0X1FFFF,则转换后的编码存储于 0X8000-0X9FFF,偏移规则包括UCS2 编码 Code+0X8000 ;若LoCode为0X00 ;则转换后的编码存储于0XA000-0XA0FF,偏移规则包括利用所述HiCode进行换码,得到OXAOOO+HiCode ;若LoCode为0X22 ;则若转换后的编码存储于0XFF00-0XFFFF时,偏移规则包括 利用所述HiCode进行换码,得到OXFFOO+HiCode。为将本发明实施例提供的嵌入式设备中多语言显示方法阐释地更清楚更明白,现以另外一个角度对其进行说明,具体请参见下文。本发明实施例融合了 UNICODE、UTF-8、GB2312等编码的优点,对标准UCS2编码重新进行了整合和设计,实现了一个更精简、更合适嵌入式小型设备使用的编码所有字符, 采用灵活的1 2字节长来编码,1字节的编码为标准ASCII编码,2字节的编码为汉字和其他语言的字符。方便软件人员的编程,软件代码顺利移植,对英文、阿拉伯数字和其他数学、标点等通用符号,采用了标准的、单字节的ASCII编码;为在简体中文环境下,使得软件代码可视、直观化,对于中文字符,采用了双字节的GB2312-80编码规则;其他语言的字符,采用双字节编码,在剩余的编码空间内换码或映射实现。假设原标准UCS2的2字节编码中高字节为HiCode、低字节为LoCode ;显然,该UCS2编码Code = HiCode X 256+LoCode。现在需要把该编码重新编排,对应到新的编码方案中。具体而言,对于1 2字节的新的编码空间,即O OXFFFF空间段,详细的编码方案和空间分配如下一个字节编码空间0X00-0X7F为标准的ASCII编码,支持英文、阿拉伯数字和其他数学、标点等1 个通用符号;两个字节的编码空间0X8000-0XFFFF。收录了全部GB2312的全部汉字和字符,以及约23000个左右的其他语言的字符。具体如下0XA1A1-0XFEFE,标准的GB2312-80编码,支持6763个汉字,其中一级汉字3755 个,二级汉字3008个;同时,收录了包括拉丁字母、希腊字母、日文平假名及片假名字母、俄语西里尔字母在内的682个全角字符;0X8000-0XA0FF、0XFF00-0XFFFF,为其他语言字符的编码空间,在原字符的UCS2 编码基础上的重新编排和换码。其中,0X8000-0X9FFF,换码规则;针对原UCS2编码,通过典型的偏移规则运算得到。 本发明通用的编码实现是加载UCS2编码0X0000-0X1FFF,共8K的字符集(原UCS2编码 Code+0X8000即可得到)。也允许用户自定义编码,即可由用户自行加载其他字符集编码, 通过一定的偏移量得到,供用户自由使用。如实现欧、美绝大部分的语言显示,只需加载 UCS2编码中0X0000-0X04FF字符集就足够了。在0X8500-0X9FFF剩余的空间内,可由用户自行加载其他字符集编码,通过一定的偏移量得到,供用户自由使用。从此可以看出,本发明巧妙地借用了 UCS2编码特征(同一语言的字符集都是集中编码),因此,通过简单的换码或偏移量即可编码到0X8000-0X9FFF区间。并支持8000个左右的字符集,可以实现绝大部分语言、以及多个语言同时显示支持;0XA000-0XA0FF,换码规则;针对原UCS2中低字节为0 (LoCode = 0)的编码,通过高字节换码到该区域(OXAOOO+HiCode)。举例如下,原UCS2编码为0X1200的字符,经过换码后,新的编码为0XA012 ;原UCS2编码为0XC400的字符,经过换码后,新的编码为0XA0C4 ;说明用户通常采用高级语言,如C语言进行嵌入式设备的软件实现。0X00的字符,在C语言中,表示的是一个字符串的结束符。通过此换码,过滤掉0 X 00的字符,使得用户在调用高级语言中字符串处理的库函数时,不用进行特殊处理,大大方便软件实现;0XFF00-0XFFFF,换码规则;针对原UCS2中低字节为0X22 (LoCode = 0X22)的编码,通过高字节换码到该区域(OXFFOO+HiCode)。举例如下,原UCS2编码为0X1222的字符, 经过换码后,新的编码为0XFF12 ;原UCS2编码为0XC422的字符,经过换码后,新的编码为 0XFFC4 ;
说明0X22的ASCII字符,即为符号”。用户通常采用高级语言,如C语言进行嵌入式设备的软件实现。0X22的字符,表示的是一个字符串的起始或中止符号;此换码规贝U,是过滤掉0X22的字符,使得用户在调用高级语言中字符串处理的库函数时,不用进行特殊处理,大大方便软件实现;最后,对于0XA100-0XFEFF空间段,前面已经述及,GB2312-80编码占据了低字节从0XA1-0XFE的空间;因此,对于高字节不变、低字节为0X01-0XA0空间段(其中低字节为 0X3F空间不可用,在0XF000-0XF0FF空间段已被换码),尚未使用,这部分编码空间,亦可以用来支持其他语言的字符编码。这部分空间的编码,编码规则可以自行实现,如采用类似0X8000-0X9FFF空间段的通过简单偏移运算或换码实现;也可以采用固定的映射编码实现。这部分空间,支持约15000个字符集,可以扩展实现绝大部分语言、以及多个语言同时显不支持;总结一下,本发明实施例对标准的UCS2编码重新进行了整合和设计,通过1 2 字节的混合编码,兼容实现了 ASCII编码和GB2312编码,并支持约23000个其他语言字符集;同时完全支持高级语言中字符串处理的库函数的直接调用,方便用户使用的同时,大大节省了存贮空间。在一个实施例中,将对应的编码根据编码规则转换为对应的语言符号,并显示在嵌入式设备的显示屏上,处理流程如图2所示,包括步骤202、确定语言符号显示的字模的型号,记录特殊符号,特殊符号显示的字模的型号超出预设范围;步骤204、将特殊符号的字模中不含信息量的区域去除,直至其显示的字模的型号未超出预设范围。实施时,将特殊符号的字模中不含信息量的区域去除,包括若将特殊符号的字模中不含信息量的区域全部去除,其显示的字模的型号仍超出预设范围时,将特殊符号的字模中含信息量低于预设信息量域值的区域去除,直至其显示的字模的型号未超出预设范围。对需要显示的字符,进行编码后,再把该编码对应的字模加载到对应的显示设备上,就可以完成显示了。网络上、包括PC机常用的windows平台上,都有很多字模可供使用, 如各种字体(如Symbol、Times New Roman、楷体),各种大小的字模,如汉字常用的16、24、 32点阵字模,英文符号常用的5*7、8* 16点阵等等。众所周知,汉字是地球上常用语言中点阵最复杂的字符,通常可以使用最小16X16点阵的字模显示(基本可用的还有14X14 点阵;最小可到12X12点阵,但这时候缺笔少画的现象就很多了,汉字显示失真严重)。显然,如果我们直接加载如16* 16点阵的字模,显示目前地球上绝大多数语言字符,是没有任何问题的,也是最直接和容易想到的。但存在一个非常现实的严重问题显示空间太小、字模太大,导致显示内容不完整!举例如下嵌入式小型设备,多数显示设备较小,在有限的显示域内,如何能显示更多的字符呢?比如一个很典型的U8X64的工业用IXD模块,每行最多显示8个16点阵的汉字,每个汉字都有具体含义,8个汉字构成的字符串,基本上能表达出一个句子相对明确的意思,但是8个其他语言的字符,基本上很难表达清楚一句话,比如英语中,很多单个的英语单词, 长度就超过8个字符。这时,只有两种处理办法1、采用缩写;2、减小字符字模,以便在有限空间内显示更多数量的字符。很多缩写也很难以完整表达意思;减少字符字模,是一种更可行的方法。显然,非汉字字符如能采用半角显示(即每个汉字的一半宽度),对简化显示方法,以及界面上显示对齐,益处多多。那么,如何得到半角显示的字模呢?步骤如下字模提取编写一个工具软件或程序,获取指定大小、半角显示的非汉字字符的点阵字模;需要选择合适的字体大小,以保证大多数字符都能在半角宽度内全部正确地显示出来;部分较宽的字符,会超过半角宽度;把这些字符单独记录下来;该工具软件或程序的具体实现方法很多种。比如,一个通用的方法可以是在PC机 windows平台上,使用Visual C下的⑶I (图形设备界面)编程实现左对齐方式、选择合适的字体和大小、通过文本输出的类,在指定大小的窗口(如半角显示的8X16)上显示。合适的字体和大小,即是满足正常显示时,可能的最大字体(如8磅)和最窄的字体风格(如 SmallFont);这个过程需要循环反复,合理选择最大的字体和最窄的字体风格是在尽可能显示美观的情况下、减少下一步压缩的工作量;一股情况下,其他语言的字符复杂度不会超过汉字。因此,这些字符高度显然不会超过显示的高度,但是部分较为复杂的字符,如西里尔文中的“>^’、“贝”、“10”等字符可能会超过半角宽度,需要把这些字符记录下来;有损压缩对第一步记录下的复杂字符进行有损压缩,每一个超过显示宽度的字符字模都需要压缩,实际上就是进行合理的、信息损失最小的剪除;或者称之为“瘦身”的处理。实施时,一种较优的压缩方式如下右边界剪除从最右边开始,逐位剪除右边各列的空白列(即该列着墨象素点为0 个,对应的字节内容为0X00);如果能在半角宽度内完整显示,该字模压缩成功;保存退出; 遇到非空白列即停止剪除,进入下一步;左边界剪除从最左边开始,逐步剪除左边各列的空白列(即该列着墨象素点为 0个,对应的字节内容为0X00);并把该字模同步左移位;如果能在半角宽度内完整显示,该字模压缩成功;保存退出;遇到非空白列即停止剪除,进入下一步;中空剪除从最左边开始,从大到小,逐步剪除中间连续的空白列,并把该字模同步左移位;如果能在半角宽度内完整显示,该字模压缩成功;保存退出;如没有空白列或者空白列只有1列、不连续,进入下一步;统计该字模的各列内容;厚度剪除从最左边开始,从大到小,逐步剪除最大且连续的相同列,并把该字模同步左移位;如果能在半角宽度内完整显示,该字模压缩成功;保存退出;如没有连续相同的列,进入下一步;左、右边界有损剪除逐步剪除最左、最右边着墨象素最少的非孤点列(如16点阵中,着墨象素只有1 2点列);如果能在半角宽度内完整显示,该字模压缩成功;保存退出;否则进入下一步;相似剪除从最左边开始,逐步剪除差异最小的一个列(所谓差异最小,是指两列数据中,只有1 2个着墨象素不同,孤点列不能剪除);剪除原则是剪除着墨象素较少的列;说明孤点,指的是该着墨象素点,周围都没有着墨象素点(换言之,以该点为中心的九宫格,九格中只有其本身一个着墨象素点)。最后,汇总这些未经过和已经过压缩的字模,形成一个完整排序的字模文件,或者有规则的字模检索表,供用户使用。这样,用户根据要显示的字符的编码,找到其对应的字模,送入显示设备,就可以进行多语言的显示了。本发明实施例的关键技术如下传统上,通用的UNICODE、UTF-8、GB2312等编码方式各有优劣,互不兼容,嵌入式设备在进行多语言显示的时候,一股只选择一种编码方式。且由于嵌入式设备的存贮空间的限制,多数无法直接应用UTF-8编码。本发明实施例通过用了 1 2字节的混合编码,融合了 UNIC0DE、UTF-8、GB2312等编码优点,并兼容实现了 ASCII编码,借用ASCII和GB2312 编码的剩余空间,通过巧妙的空间分配和换码方式,实现了约23000个左右的其他语言的字符集的编码,可以支持绝大部分语言、以及多个语言同时显示;同时完全支持高级语言中字符串处理的库函数的直接调用,方便用户使用的同时,大大节省了存贮空间;相当多的其他语言的字符,由于点阵字模相对复杂,因此,有限的显示设备上显示的字符数量少,无法充分地表达含义和内容。本发明实施例利用信息损失最小的剪除算法, 对字符的字模进行了有损压缩,以便这些字符实现半角显示,使得在相同的显示域内可以显示多一倍数量的字符,内容显示更多、更丰富,人机交互也更加友好。下面为具体的实施例,结合附图对技术方案的实施作进一步的详细描述假设某公司的电源产品正在大力扩展国际市场,该监控单元⑶I使用的是显示域为1 X 64的点阵LCD。除了需要在LCD上显示中文、英文外,还需要支持5种其他语言(如土耳其文、葡萄牙文等)。该监控单元为8位单片机的嵌入式系统,存贮空间只有512KB。存贮空间内不仅要存放这些语言的字符的字模,还需要存贮菜单显示的各个字符串,其中英文字符串需要占据约32KB的空间。很显然,如果采用UTF-8编码来实现多语言的半角显示,最大可能情况下(如果这 5种语言的字符在UCS2编码0X800以上时),仅仅字符串显示需要的存贮空间为32KB的英文+32KB/2X3的中文+32KBX3X5的其他语言字符串=560KB(说明,汉字也是3字节编码,由于一个汉字相当于两个其他字符,因此汉字字符串需要的存贮空间为32KB/2*3)。因此,整个512KB存贮空间都无法保存下显示字符串,更没空间来保存显示字符字模。当然,可以采用减短显示字符串长度的办法变通实现,即采用全角方式显示。这样,每个其他语言的字符串只占据32KB/2X3空间,整个存贮显示的空间只需要320KB,可以满足要求。但是,这种牺牲代价很大,造成了 U8X64的点阵IXD能显示字符太少(每行只能显示8 9个字符),信息严重缺失,人机交互很不友好。因此,如采用本发明的编码技术,对于所有非ASCII字符来说,都用2字节表示的话,存贮全部字符串空间最大为32KB的英文+32KB的中文+32KBX2X5的其他语言字符串 =384KB,因此还有U8KB的空间用来存贮各种语言字符的点阵信息和其他程序可能需要的其他信息(如图标、位图等内容)。其次,为了尽可能多的显示字符,对于中文,选择了 14X14点阵的字模,其他语言的字符(包括英文),使用半角显示,即字模为7 X 14点阵。因此,一行可以最多显示128/14 =9个汉字,或者128/7 = 18个其他字符。而每个汉字字模为观字节;其他字符14字节;如果部分字符(包括汉字)不是连续编码的话,还需要为这些字符的字模增加2个字节的编码标识,以便显示程序通过检索得到该字符的字模。最后,采用本发明的编码后,对整个512KB存贮空间进行规划,得到如下的表格
权利要求
1.一种嵌入式设备中多语言显示方法,其特征在于,包括根据嵌入式设备的编码规则为将显示的语言选择对应的编码,其中,所述嵌入式设备的编码规则为一个字节的编码用于标识通用符号,两个字节的编码用于标识语言的字符, 所述通用符号包括英文、数字和标点;将所述对应的编码根据编码规则转换为对应的语言符号,并显示在嵌入式设备的显示屏上。
2.根据权利要求1所述的方法,其特征在于,所述一个字节的编码规则兼容美国信息互换标准代码ASCII编码规则,所述两个字节的编码规则兼容信息交换用汉字字符集-基本集GB2312-80编码规则。
3.根据权利要求2所述的方法,其特征在于,在O-OXFFFF的空间段内,选择0X00-0X7F 存储兼容所述ASCII编码规则的单字节编码;选择在0X80000-0XFFFF存储所述兼容 GB2312-80编码规则的双字节编码。
4.根据权利要求3所述的方法,其特征在于,所述选择在0X80000-0XFFFF存储兼容所述GB2312-80编码规则的双字节编码,包括在0XA1A1-0XFFFF中存储支持汉字的所述GB2312-80编码;在0X8000-0XA0FF、0XFF00-0XFFFF中存储支持除汉字外的其他语言的编码。
5.根据权利要求4所述的方法,其特征在于,所述在0X8000-0XA0FF、0XFF00-0XFFFF中存储支持除汉字外的其他语言的编码,包括除汉字外的其他语言的编码采用通用字符集UCS2编码规则时,利用偏移规则实现汉字外的其他语言的编码转换为采用所述嵌入式设备的编码规则的编码。
6.根据权利要求5所述的方法,其特征在于,所述除汉字外的其他语言的编码本来采用UCS2编码规则时,利用偏移规则实现汉字外的其他语言的编码转换为采用所述嵌入式设备的编码规则的编码,包括原语言字符UCS2编码Code中,双字节包括高字节HiCode、低字节LoCode ;若所述原语言字符UCS2编码Code范围在0X80 0X1FFFF,则转换后的编码存储于 0X8000-0X9FFF,所述偏移规则包括UCS2 编码 Code+0X8000 ;若所述LoCode为0X00 ;则转换后的编码存储于0XA000-0XA0FF,所述偏移规则包括 利用所述HiCode进行换码,得到OXAOOO+HiCode ;若所述LoCode为0X22 ;则若转换后的编码存储于0XFF00-0XFFFF时,所述偏移规则包括利用所述HiCode进行换码,得到OXFFOO+HiCode。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述将所述对应的编码根据编码规则转换为对应的语言符号,并显示在嵌入式设备的显示屏上,包括确定所述语言符号显示的字模的型号,记录特殊符号,所述特殊符号显示的字模的型号超出预设范围;将所述特殊符号的字模中不含信息量的区域去除,直至其显示的字模的型号未超出预设范围。
8.根据权利要求7所述的方法,其特征在于,将所述特殊符号的字模中不含信息量的区域去除,包括若将所述特殊符号的字模中不含信息量的区域全部去除,其显示的字模的型号仍超出预设范围时,将所述特殊符号的字模中含信息量低于预设信息量域值的区域去除,直至其显示的字模的型号未超出预设范围。
9.一种嵌入式设备中多语言显示装置,其特征在于,包括选择模块,用于根据嵌入式设备的编码规则为将显示的语言选择对应的编码,其中,所述嵌入式设备的编码规则为一个字节的编码用于标识通用符号,两个字节的编码用于标识语言的字符,所述通用符号包括英文、数字和标点;显示模块,用于将所述对应的编码根据编码规则转换为对应的语言符号,并显示在嵌入式设备的显示屏上。
10.根据权利要求9所述的装置,其特征在于,所述选择模块包括第一选择子模块,用于在O-OXFFFF的空间段内,选择0X00-0X7F存储兼容ASCII编码规则的单字节编码;第二选择子模块,用于选择在0X80000-0XFFFF存储兼容GB2312-80编码规则的双字节编码。
11.根据权利要求10所述的装置,其特征在于,所述第二选择子模块还用于在 0XA1A1-0XFFFF 中存储支持汉字的所述 GB2312-80 编码;在 0X8000-0XA0FF、0XFF00-0XFFFF 中存储支持除汉字外的其他语言的编码。
12.根据权利要求11所述的装置,其特征在于,所述第二选择子模块还用于除汉字外的其他语言的编码采用UCS2编码规则时,利用偏移规则实现汉字外的其他语言的编码转换为采用所述嵌入式设备的编码规则的编码。
13.根据权利要求9至12任一项所述的装置,其特征在于,所述显示模块包括确定子模块,用于确定所述语言符号显示的字模的型号,记录特殊符号,所述特殊符号显示的字模的型号超出预设范围;去除子模块,用于将所述特殊符号的字模中不含信息量的区域去除,直至其显示的字模的型号未超出预设范围。
14.根据权利要求13所述的装置,其特征在于,所述去除子模块还用于若将所述特殊符号的字模中不含信息量的区域全部去除,其显示的字模的型号仍超出预设范围时,将所述特殊符号的字模中含信息量低于预设信息量域值的区域去除,直至其显示的字模的型号未超出预设范围。
全文摘要
本发明提供了嵌入式设备中多语言显示方法及装置,该方法包括根据嵌入式设备的编码规则为将显示的语言选择对应的编码,其中,所述嵌入式设备的编码规则为一个字节的编码用于标识通用符号,两个字节的编码用于标识语言的字符,所述通用符号包括英文、数字和标点;将所述对应的编码根据编码规则转换为对应的语言符号,并显示在嵌入式设备的显示屏上。采用本发明能够可以扩展和支持任意语言。
文档编号G06F9/44GK102479075SQ20101055725
公开日2012年5月30日 申请日期2010年11月23日 优先权日2010年11月23日
发明者熊勇 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1