[go: up one dir, main page]

CN102479075A - 嵌入式设备中多语言显示方法及装置 - Google Patents

嵌入式设备中多语言显示方法及装置 Download PDF

Info

Publication number
CN102479075A
CN102479075A CN201010557255XA CN201010557255A CN102479075A CN 102479075 A CN102479075 A CN 102479075A CN 201010557255X A CN201010557255X A CN 201010557255XA CN 201010557255 A CN201010557255 A CN 201010557255A CN 102479075 A CN102479075 A CN 102479075A
Authority
CN
China
Prior art keywords
code
language
codes
matrix
coding
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201010557255XA
Other languages
English (en)
Inventor
熊勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CN201010557255XA priority Critical patent/CN102479075A/zh
Priority to PCT/CN2011/077576 priority patent/WO2012068897A1/zh
Publication of CN102479075A publication Critical patent/CN102479075A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/126Character encoding

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

本发明提供了嵌入式设备中多语言显示方法及装置,该方法包括:根据嵌入式设备的编码规则为将显示的语言选择对应的编码,其中,所述嵌入式设备的编码规则为:一个字节的编码用于标识通用符号,两个字节的编码用于标识语言的字符,所述通用符号包括英文、数字和标点;将所述对应的编码根据编码规则转换为对应的语言符号,并显示在嵌入式设备的显示屏上。采用本发明能够可以扩展和支持任意语言。

Description

嵌入式设备中多语言显示方法及装置
技术领域
本发明涉及通信领域,具体而言,涉及一种嵌入式设备中多语言显示方法及装置。
背景技术
随着技术的发展和生活水平的提高,越来越多的工业控制、医疗、通讯、消费等电子产品日趋智能化,以微处理器为核心的嵌入式系统得到日益广泛的应用。相当多的电子设备,如各类终端、仪表、高级玩具、家电控制单元等,由于成本和体积的要求,都是典型的单片机构成的小型设备;为了提升这些设备的易用性和性能,都配置了按键和显示设备(如小型液晶显示模块LCD(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×00~0×1F和0×80~0×9F区域,这段区域通常未用,可以用于其他语言的字符。成本也很少,但是缺陷很明显,未用的空间只有64个,导致能显示的语言容量很少。
图标显示介于上述两个方法之间,需要少量的空间扩展,但是可以显示多种语言的字符。图标显示基本上是把其他语言字符集中的每个字符,以一个指定的编号替换,比如,西里尔文中的“Ж”用编号5替换,“3”用编号6替换,“N”用编号7替换等等。要显示这些字符,即显示编号5、6、7对应的图标内容即可。这也是一种常用方法,但是缺点也是很明显的,编号固定,软件代码中不可直观,同时软件的可维护行、以及扩展性非常不好。
针对相关技术中多语言的显示方式能显示的语言容量少、可维护行、以及扩展性不好的问题,目前尚未提出有效的解决方案。
发明内容
本发明旨在提供一种嵌入式设备中多语言显示方法及装置,以解决相关技术中多语言的显示方式能显示的语言容量少、可维护行、以及扩展性不好的问题。
根据本发明的一个方面,提供了一种嵌入式设备中多语言显示方法,包括:根据嵌入式设备的编码规则为将显示的语言选择对应的编码,其中,所述嵌入式设备的编码规则为:一个字节的编码用于标识通用符号,两个字节的编码用于标识语言的字符,所述通用符号包括英文、数字和标点;将所述对应的编码根据编码规则转换为对应的语言符号,并显示在嵌入式设备的显示屏上。
优选的,所述一个字节的编码规则兼容美国信息互换标准代码ASCI I编码规则,所述两个字节的编码规则兼容信息交换用汉字字符集-基本集GB2312-80编码规则。
优选的,在0-0XFFFF的空间段内,选择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进行换码,得到0XA000+HiCode;若所述LoCode为0X22;则若转换后的编码存储于0XFF00-0XFFFF时,所述偏移规则包括:利用所述HiCode进行换码,得到0XFF00+HiCode。
优选的,所述将所述对应的编码根据编码规则转换为对应的语言符号,并显示在嵌入式设备的显示屏上,包括:确定所述语言符号显示的字模的型号,记录特殊符号,所述特殊符号显示的字模的型号超出预设范围;将所述特殊符号的字模中不含信息量的区域去除,直至其显示的字模的型号未超出预设范围。
优选的,将所述特殊符号的字模中不含信息量的区域去除,包括:若将所述特殊符号的字模中不含信息量的区域全部去除,其显示的字模的型号仍超出预设范围时,将所述特殊符号的字模中含信息量低于预设信息量域值的区域去除,直至其显示的字模的型号未超出预设范围。
根据本发明的另一方面,提供了一种嵌入式设备中多语言显示装置,包括:选择模块,用于根据嵌入式设备的编码规则为将显示的语言选择对应的编码,其中,所述嵌入式设备的编码规则为:一个字节的编码用于标识通用符号,两个字节的编码用于标识语言的字符,所述通用符号包括英文、数字和标点;显示模块,用于将所述对应的编码根据编码规则转换为对应的语言符号,并显示在嵌入式设备的显示屏上。
优选的,所述选择模块包括:第一选择子模块,用于在0-0XFFFF的空间段内,选择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编码规则。
实施时,较优的,在0-0XFFFF的空间段内,选择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,通用字符集2)编码规则时,利用偏移规则实现汉字外的其他语言的编码转换为采用嵌入式设备的编码规则的编码。
除汉字外的其他语言的编码本来采用UCS2编码规则时,利用偏移规则实现汉字外的其他语言的编码转换为采用所述嵌入式设备的编码规则的编码,包括:
原语言字符UCS2编码Code中,双字节包括高字节HiCode、低字节LoCode;
若原语言字符UCS2编码Code范围在0X80~0X1FFFF,则转换后的编码存储于0X8000-0X9FFF,偏移规则包括:UCS2编码Code+0X8000;
若LoCode为0X00;则转换后的编码存储于0XA000-0XA0FF,偏移规则包括:利用所述HiCode进行换码,得到0XA000+HiCode;
若LoCode为0X22;则若转换后的编码存储于0XFF00-0XFFFF时,偏移规则包括:利用所述HiCode进行换码,得到0XFF00+HiCode。
为将本发明实施例提供的嵌入式设备中多语言显示方法阐释地更清楚更明白,现以另外一个角度对其进行说明,具体请参见下文。
本发明实施例融合了UNICODE、UTF-8、GB2312等编码的优点,对标准UCS2编码重新进行了整合和设计,实现了一个更精简、更合适嵌入式小型设备使用的编码:所有字符,采用灵活的1~2字节长来编码,1字节的编码为标准ASCII编码,2字节的编码为汉字和其他语言的字符。
方便软件人员的编程,软件代码顺利移植,对英文、阿拉伯数字和其他数学、标点等通用符号,采用了标准的、单字节的ASCII编码;
为在简体中文环境下,使得软件代码可视、直观化,对于中文字符,采用了双字节的GB2312-80编码规则;
其他语言的字符,采用双字节编码,在剩余的编码空间内换码或映射实现。假设原标准UCS2的2字节编码中高字节为HiCode、低字节为LoCode;显然,该UCS2编码Code=HiCode×256+LoCode。现在需要把该编码重新编排,对应到新的编码方案中。具体而言,对于1~2字节的新的编码空间,即0~0XFFFF空间段,详细的编码方案和空间分配如下:
一个字节编码空间:0X00-0X7F为标准的ASCII编码,支持英文、阿拉伯数字和其他数学、标点等128个通用符号;
两个字节的编码空间: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)的编码,通过高字节换码到该区域(0XA000+HiCode)。举例如下,原UCS2编码为0X1200的字符,经过换码后,新的编码为0XA012;原UCS2编码为0XC400的字符,经过换码后,新的编码为0XA0C4;
说明:用户通常采用高级语言,如C语言进行嵌入式设备的软件实现。0×00的字符,在C语言中,表示的是一个字符串的结束符。通过此换码,过滤掉0×00的字符,使得用户在调用高级语言中字符串处理的库函数时,不用进行特殊处理,大大方便软件实现;
0XFF00-0XFFFF,换码规则;针对原UCS2中低字节为0X22(LoCode=0×22)的编码,通过高字节换码到该区域(0XFF00+HiCode)。举例如下,原UCS2编码为0X1222的字符,经过换码后,新的编码为0XFF12;原UCS2编码为0XC422的字符,经过换码后,新的编码为0XFFC4;
说明:0×22的ASCII字符,即为符号”。用户通常采用高级语言,如C语言进行嵌入式设备的软件实现。0×22的字符,表示的是一个字符串的起始或中止符号;此换码规则,是过滤掉0×22的字符,使得用户在调用高级语言中字符串处理的库函数时,不用进行特殊处理,大大方便软件实现;
最后,对于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点阵字模,英文符号常用的57、816点阵等等。众所周知,汉字是地球上常用语言中点阵最复杂的字符,通常可以使用最小16×16点阵的字模显示(基本可用的还有14×14点阵;最小可到12×12点阵,但这时候缺笔少画的现象就很多了,汉字显示失真严重)。显然,如果我们直接加载如1616点阵的字模,显示目前地球上绝大多数语言字符,是没有任何问题的,也是最直接和容易想到的。但存在一个非常现实的严重问题:显示空间太小、字模太大,导致显示内容不完整!举例如下:
嵌入式小型设备,多数显示设备较小,在有限的显示域内,如何能显示更多的字符呢?比如一个很典型的128×64的工业用LCD模块,每行最多显示8个16点阵的汉字,每个汉字都有具体含义,8个汉字构成的字符串,基本上能表达出一个句子相对明确的意思,但是8个其他语言的字符,基本上很难表达清楚一句话,比如英语中,很多单个的英语单词,长度就超过8个字符。这时,只有两种处理办法:1、采用缩写;2、减小字符字模,以便在有限空间内显示更多数量的字符。很多缩写也很难以完整表达意思;减少字符字模,是一种更可行的方法。显然,非汉字字符如能采用半角显示(即每个汉字的一半宽度),对简化显示方法,以及界面上显示对齐,益处多多。那么,如何得到半角显示的字模呢?步骤如下:
字模提取:编写一个工具软件或程序,获取指定大小、半角显示的非汉字字符的点阵字模;需要选择合适的字体大小,以保证大多数字符都能在半角宽度内全部正确地显示出来;部分较宽的字符,会超过半角宽度;把这些字符单独记录下来;
该工具软件或程序的具体实现方法很多种。比如,一个通用的方法可以是在PC机windows平台上,使用Visual C下的GDI(图形设备界面)编程实现:左对齐方式、选择合适的字体和大小、通过文本输出的类,在指定大小的窗口(如半角显示的8×16)上显示。合适的字体和大小,即是满足正常显示时,可能的最大字体(如8磅)和最窄的字体风格(如SmallFont);这个过程需要循环反复,合理选择最大的字体和最窄的字体风格是在尽可能显示美观的情况下、减少下一步压缩的工作量;
一股情况下,其他语言的字符复杂度不会超过汉字。因此,这些字符高度显然不会超过显示的高度,但是部分较为复杂的字符,如西里尔文中的“Ж”、“Щ”、“Ю”等字符可能会超过半角宽度,需要把这些字符记录下来;
有损压缩:对第一步记录下的复杂字符进行有损压缩,每一个超过显示宽度的字符字模都需要压缩,实际上就是进行合理的、信息损失最小的剪除;或者称之为“瘦身”的处理。
实施时,一种较优的压缩方式如下:
右边界剪除:从最右边开始,逐位剪除右边各列的空白列(即该列着墨象素点为0个,对应的字节内容为0X00);如果能在半角宽度内完整显示,该字模压缩成功;保存退出;遇到非空白列即停止剪除,进入下一步;
左边界剪除:从最左边开始,逐步剪除左边各列的空白列(即该列着墨象素点为0个,对应的字节内容为0X00);并把该字模同步左移位;如果能在半角宽度内完整显示,该字模压缩成功;保存退出;遇到非空白列即停止剪除,进入下一步;
中空剪除:从最左边开始,从大到小,逐步剪除中间连续的空白列,并把该字模同步左移位;如果能在半角宽度内完整显示,该字模压缩成功;保存退出;如没有空白列或者空白列只有1列、不连续,进入下一步;
统计该字模的各列内容;
厚度剪除:从最左边开始,从大到小,逐步剪除最大且连续的相同列,并把该字模同步左移位;如果能在半角宽度内完整显示,该字模压缩成功;保存退出;如没有连续相同的列,进入下一步;
左、右边界有损剪除:逐步剪除最左、最右边着墨象素最少的非孤点列(如16点阵中,着墨象素只有1~2点列);如果能在半角宽度内完整显示,该字模压缩成功;保存退出;否则进入下一步;
相似剪除:从最左边开始,逐步剪除差异最小的一个列(所谓差异最小,是指两列数据中,只有1~2个着墨象素不同,孤点列不能剪除);剪除原则是剪除着墨象素较少的列;
说明:孤点,指的是该着墨象素点,周围都没有着墨象素点(换言之,以该点为中心的九宫格,九格中只有其本身一个着墨象素点)。
最后,汇总这些未经过和已经过压缩的字模,形成一个完整排序的字模文件,或者有规则的字模检索表,供用户使用。
这样,用户根据要显示的字符的编码,找到其对应的字模,送入显示设备,就可以进行多语言的显示了。
本发明实施例的关键技术如下:
传统上,通用的UNICODE、UTF-8、GB2312等编码方式各有优劣,互不兼容,嵌入式设备在进行多语言显示的时候,一股只选择一种编码方式。且由于嵌入式设备的存贮空间的限制,多数无法直接应用UTF-8编码。本发明实施例通过用了1~2字节的混合编码,融合了UNICODE、UTF-8、GB2312等编码优点,并兼容实现了ASCII编码,借用ASCII和GB2312编码的剩余空间,通过巧妙的空间分配和换码方式,实现了约23000个左右的其他语言的字符集的编码,可以支持绝大部分语言、以及多个语言同时显示;同时完全支持高级语言中字符串处理的库函数的直接调用,方便用户使用的同时,大大节省了存贮空间;
相当多的其他语言的字符,由于点阵字模相对复杂,因此,有限的显示设备上显示的字符数量少,无法充分地表达含义和内容。本发明实施例利用信息损失最小的剪除算法,对字符的字模进行了有损压缩,以便这些字符实现半角显示,使得在相同的显示域内可以显示多一倍数量的字符,内容显示更多、更丰富,人机交互也更加友好。
下面为具体的实施例,结合附图对技术方案的实施作进一步的详细描述:
假设某公司的电源产品正在大力扩展国际市场,该监控单元GUI使用的是显示域为128×64的点阵LCD。除了需要在LCD上显示中文、英文外,还需要支持5种其他语言(如土耳其文、葡萄牙文等)。该监控单元为8位单片机的嵌入式系统,存贮空间只有512KB。存贮空间内不仅要存放这些语言的字符的字模,还需要存贮菜单显示的各个字符串,其中英文字符串需要占据约32KB的空间。
很显然,如果采用UTF-8编码来实现多语言的半角显示,最大可能情况下(如果这5种语言的字符在UCS2编码0X800以上时),仅仅字符串显示需要的存贮空间为32KB的英文+32KB/2×3的中文+32KB×3×5的其他语言字符串=560KB(说明,汉字也是3字节编码,由于一个汉字相当于两个其他字符,因此汉字字符串需要的存贮空间为32KB/23)。因此,整个512KB存贮空间都无法保存下显示字符串,更没空间来保存显示字符字模。
当然,可以采用减短显示字符串长度的办法变通实现,即采用全角方式显示。这样,每个其他语言的字符串只占据32KB/2×3空间,整个存贮显示的空间只需要320KB,可以满足要求。但是,这种牺牲代价很大,造成了128×64的点阵LCD能显示字符太少(每行只能显示8~9个字符),信息严重缺失,人机交互很不友好。
因此,如采用本发明的编码技术,对于所有非ASCII字符来说,都用2字节表示的话,存贮全部字符串空间最大为32KB的英文+32KB的中文+32KB×2×5的其他语言字符串=384KB,因此还有128KB的空间用来存贮各种语言字符的点阵信息和其他程序可能需要的其他信息(如图标、位图等内容)。
其次,为了尽可能多的显示字符,对于中文,选择了14×14点阵的字模,其他语言的字符(包括英文),使用半角显示,即字模为7×14点阵。因此,一行可以最多显示128/14=9个汉字,或者128/7=18个其他字符。而每个汉字字模为28字节;其他字符14字节;如果部分字符(包括汉字)不是连续编码的话,还需要为这些字符的字模增加2个字节的编码标识,以便显示程序通过检索得到该字符的字模。
最后,采用本发明的编码后,对整个512KB存贮空间进行规划,得到如下的表格:
Figure BDA0000033859860000091
Figure BDA0000033859860000101
显然,本发明实施例通过巧妙的编码技术,实现了在有限的存贮空间内保存更多的字符的可能。方案确定后,我们就开始一步步地实施了:
编码实现:
多语言翻译好的显示字符串以文本方式存贮;建议存贮为UNICODE格式的文本文件。因为很多其他语言的字符,UNICODE格式下,每个字符都用双字节来表示,即UCS2格式;更方便我们的编码和转换;
编写一个小的工具软件,检索出该文本中所有的字符集合。并进行规类:如UCS2编码范围在0X0000-0X007F段的为ASCII码;0X0080-0X04FF段的为拉丁/希腊/西里尔字符码,0X4E00-0X9FBF段的为汉字区,其他段的为扩展字符码;
字符的统一编码和转换:按照本发明中的混合编码,进行转换,同时减少了字符串的存贮空间。如UCS2编码范围在0X0000-0X007F段的双字节编码为转换为单字节0X00-0X7F的ASCII码;0X4E00-0X9FBF段的双字节汉字转换成0XA1A1-0XFEFE段的GB2312-80双字节编码;对于不在一级、二级字库范围内的冷僻汉字,弃用或者移到扩展编码区编码等;
把编码转换后的新的字符串存放到各语言所属的显示空间,如0X20000-0X27FFF存贮英文字符串;0X30000-0X3FFFF存贮第1语言显示字符串等;
字模实现:
标准ASCII码的字模,可以从网络或者本机直接获取,如常用的ASC816文件即是(ASC816为8×16点阵的字模,当我们直接显示前面7列数据,就可以得到7×14的显示效果);当然也通过下面自编的工具软件获取;
标准GB2312汉字,可以从网络或者本机直接获取,如常用的HZK14文件即是;当然也通过下面自编的工具软件获取;
自编工具软件,来获取字符的字模。在C机windows平台上,使用Visual C下的GDI(图形设备界面)编程,来实现该工具软件:左对齐方式、选择合适的字体(如Small Font)和大小(如8磅)、通过文本输出方式,在指定大小的7×16窗口内显示该字符;反复调整字体和字符的大小,满足绝大多数字符能在7×16窗口内完整显示的情况下,需要压缩的字符尽量少、同时字体越大越好;保存下所需要的字符的字模信息。当然,如果需要用此工具软件来提取14点阵的汉字,窗口调整为14×16的大小即可。
继续运行该工具软件,实现较宽大的字符的有损压缩(合理的、信息损失最小的剪除);压缩算法见前面所述;
合并所有原始和压缩处理后的字模,完毕;
完成显示:
最后进行多语言的显示,实际上就是显示任意一个存贮在字符串显示空间的字符即可。取出该字符后,判断该字符,并在字模空间内查找出对应的字模:如在0-0X7F间,是标准ASCII,在基本语字符字模空间获取该字符字模;其他时,获取下一个字符,高低双字节合并成一个编码。如在0XA1A1-0XFEFE段,则在1414汉字字模(简体)或1414汉字字模(繁体)区间获取该字模;其它情况下,需要进行编码或映射的逆运算,如该编码-0X8000,得到在0X0080-0X04FF范围内的原始UCS2编码,并在基本语字符字模空间获取该字符字模等。这样,就可以完成多语言的显示了。
基于同一发明构思,本发明实施例还提供了一种嵌入式设备中多语言显示装置,其结构示意图如图3所示,包括:
选择模块301,用于根据嵌入式设备的编码规则为将显示的语言选择对应的编码,其中,嵌入式设备的编码规则为:一个字节的编码用于标识通用符号,两个字节的编码用于标识语言的字符,通用符号包括英文、数字和标点;
显示模块302,用于将对应的编码根据编码规则转换为对应的语言符号,并显示在嵌入式设备的显示屏上。
在一个实施例中,如图4所示,选择模块301可以包括:
第一选择子模块401,用于在0-0XFFFF的空间段内,选择0X00-0X7F存储兼容ASCII编码规则的单字节编码;
第二选择子模块402,用于选择在0X80000-0XFFFF存储兼容GB2312-80编码规则的双字节编码。
在一个实施例中,第二选择子模块402还可以用于:在0XA1A1-0XFFFF中存储支持汉字的GB2312-80编码;在0X8000-0XA0FF、0XFF00-0XFFFF中存储支持除汉字外的其他语言的编码。
在一个实施例中,第二选择子模块402还可以用于:除汉字外的其他语言的编码采用UCS2编码规则时,利用偏移规则实现汉字外的其他语言的编码转换为采用嵌入式设备的编码规则的编码。
在一个实施例中,如图5所示,显示模块302可以包括:
确定子模块501,用于确定语言符号显示的字模的型号,记录特殊符号,特殊符号显示的字模的型号超出预设范围;
去除子模块502,用于将特殊符号的字模中不含信息量的区域去除,直至其显示的字模的型号未超出预设范围。
在一个实施例中,去除子模块502还可以用于:若将特殊符号的字模中不含信息量的区域全部去除,其显示的字模的型号仍超出预设范围时,将特殊符号的字模中含信息量低于预设信息量域值的区域去除,直至其显示的字模的型号未超出预设范围。
从以上的描述中,可以看出,本发明实现了如下技术效果:
在本发明实施例中,根据嵌入式设备的编码规则为将显示的语言选择对应的编码,其中,嵌入式设备的编码规则为:一个字节的编码用于标识通用符号,两个字节的编码用于标识语言的字符,通用符号包括英文、数字和标点;将对应的编码根据编码规则转换为对应的语言符号,并显示在嵌入式设备的显示屏上。针对目前的各类多语言显示技术的不足,以及针对典型的嵌入式小型显示设备的应用,以巧妙的编码方式,实现了多种语言的显示,软件代码可视、直观化,可维护行好,同时可以非常轻松地扩展和支持任意语言。另外,本发明实施例通用、简捷,是一个非常实用的、优秀的解决方案,适用范围非常广,测控、医疗、通讯、仪表、高档玩具、家电、终端等单片机构成的小型设备,都可以使用,前景广大。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (14)

1.一种嵌入式设备中多语言显示方法,其特征在于,包括:
根据嵌入式设备的编码规则为将显示的语言选择对应的编码,其中,所述嵌入式设备的编码规则为:一个字节的编码用于标识通用符号,两个字节的编码用于标识语言的字符,所述通用符号包括英文、数字和标点;
将所述对应的编码根据编码规则转换为对应的语言符号,并显示在嵌入式设备的显示屏上。
2.根据权利要求1所述的方法,其特征在于,所述一个字节的编码规则兼容美国信息互换标准代码ASCII编码规则,所述两个字节的编码规则兼容信息交换用汉字字符集-基本集GB2312-80编码规则。
3.根据权利要求2所述的方法,其特征在于,在0-0XFFFF的空间段内,选择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进行换码,得到0XA000+HiCode;
若所述LoCode为0X22;则若转换后的编码存储于0XFF00-0XFFFF时,所述偏移规则包括:利用所述HiCode进行换码,得到0XFF00+HiCode。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述将所述对应的编码根据编码规则转换为对应的语言符号,并显示在嵌入式设备的显示屏上,包括:
确定所述语言符号显示的字模的型号,记录特殊符号,所述特殊符号显示的字模的型号超出预设范围;
将所述特殊符号的字模中不含信息量的区域去除,直至其显示的字模的型号未超出预设范围。
8.根据权利要求7所述的方法,其特征在于,将所述特殊符号的字模中不含信息量的区域去除,包括:
若将所述特殊符号的字模中不含信息量的区域全部去除,其显示的字模的型号仍超出预设范围时,将所述特殊符号的字模中含信息量低于预设信息量域值的区域去除,直至其显示的字模的型号未超出预设范围。
9.一种嵌入式设备中多语言显示装置,其特征在于,包括:
选择模块,用于根据嵌入式设备的编码规则为将显示的语言选择对应的编码,其中,所述嵌入式设备的编码规则为:一个字节的编码用于标识通用符号,两个字节的编码用于标识语言的字符,所述通用符号包括英文、数字和标点;
显示模块,用于将所述对应的编码根据编码规则转换为对应的语言符号,并显示在嵌入式设备的显示屏上。
10.根据权利要求9所述的装置,其特征在于,所述选择模块包括:
第一选择子模块,用于在0-0XFFFF的空间段内,选择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所述的装置,其特征在于,所述去除子模块还用于:若将所述特殊符号的字模中不含信息量的区域全部去除,其显示的字模的型号仍超出预设范围时,将所述特殊符号的字模中含信息量低于预设信息量域值的区域去除,直至其显示的字模的型号未超出预设范围。
CN201010557255XA 2010-11-23 2010-11-23 嵌入式设备中多语言显示方法及装置 Pending CN102479075A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201010557255XA CN102479075A (zh) 2010-11-23 2010-11-23 嵌入式设备中多语言显示方法及装置
PCT/CN2011/077576 WO2012068897A1 (zh) 2010-11-23 2011-07-25 嵌入式设备中多语言显示方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010557255XA CN102479075A (zh) 2010-11-23 2010-11-23 嵌入式设备中多语言显示方法及装置

Publications (1)

Publication Number Publication Date
CN102479075A true CN102479075A (zh) 2012-05-30

Family

ID=46091730

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010557255XA Pending CN102479075A (zh) 2010-11-23 2010-11-23 嵌入式设备中多语言显示方法及装置

Country Status (2)

Country Link
CN (1) CN102479075A (zh)
WO (1) WO2012068897A1 (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102723067A (zh) * 2012-06-01 2012-10-10 中国科学院声学研究所 一种字符显示方法和装置
CN102970596A (zh) * 2012-11-28 2013-03-13 康佳集团股份有限公司 一种实现机顶盒多语言字体显示的方法、系统及机顶盒
CN103077159A (zh) * 2012-12-31 2013-05-01 广州市动景计算机科技有限公司 网页文本压缩方法和装置
WO2016180012A1 (zh) * 2015-05-08 2016-11-17 深圳市文鼎创数据科技有限公司 字符显示的控制方法、装置及超薄卡式设备和卡体
CN106802882A (zh) * 2016-12-29 2017-06-06 杭州迪普科技股份有限公司 一种检测命令行界面编码方式的方法及装置
US10037309B1 (en) 2017-05-02 2018-07-31 International Business Machines Corporation Encoded text data management
CN108958683A (zh) * 2018-06-21 2018-12-07 江苏安科瑞电器制造有限公司 一种可实现菜单检索的数显设备和方法
CN113569534A (zh) * 2020-04-29 2021-10-29 杭州海康威视数字技术股份有限公司 一种检测文档中乱码的方法及装置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114065701A (zh) * 2020-07-31 2022-02-18 华为技术有限公司 文本显示方法、编译方法及相关设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1042616A (zh) * 1988-11-10 1990-05-30 Ncr公司 通用语言显示系统
CN1407468A (zh) * 2001-08-16 2003-04-02 陈涛 掌上阅读器的在线电子辞典
CN101266776A (zh) * 2008-04-21 2008-09-17 哈尔滨侨航通信设备有限公司 一种通过建立点阵字库使硬件终端显示任意语言的方法
CN101325758A (zh) * 2007-06-15 2008-12-17 英华达(南京)科技有限公司 可显示多种语言的移动通讯装置及方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101888505A (zh) * 2010-06-13 2010-11-17 杭州海康威视数字技术股份有限公司 一种在屏显示字符的显示方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1042616A (zh) * 1988-11-10 1990-05-30 Ncr公司 通用语言显示系统
CN1407468A (zh) * 2001-08-16 2003-04-02 陈涛 掌上阅读器的在线电子辞典
CN101325758A (zh) * 2007-06-15 2008-12-17 英华达(南京)科技有限公司 可显示多种语言的移动通讯装置及方法
CN101266776A (zh) * 2008-04-21 2008-09-17 哈尔滨侨航通信设备有限公司 一种通过建立点阵字库使硬件终端显示任意语言的方法

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102723067A (zh) * 2012-06-01 2012-10-10 中国科学院声学研究所 一种字符显示方法和装置
CN102723067B (zh) * 2012-06-01 2015-11-04 中国科学院声学研究所 一种字符显示方法和装置
CN102970596A (zh) * 2012-11-28 2013-03-13 康佳集团股份有限公司 一种实现机顶盒多语言字体显示的方法、系统及机顶盒
CN103077159A (zh) * 2012-12-31 2013-05-01 广州市动景计算机科技有限公司 网页文本压缩方法和装置
US9542373B2 (en) 2012-12-31 2017-01-10 Guangzhou Ucweb Computer Technology Co., Ltd Method and apparatus for compressing webpage text
WO2016180012A1 (zh) * 2015-05-08 2016-11-17 深圳市文鼎创数据科技有限公司 字符显示的控制方法、装置及超薄卡式设备和卡体
CN106802882A (zh) * 2016-12-29 2017-06-06 杭州迪普科技股份有限公司 一种检测命令行界面编码方式的方法及装置
US10037309B1 (en) 2017-05-02 2018-07-31 International Business Machines Corporation Encoded text data management
US10360289B2 (en) 2017-05-02 2019-07-23 International Business Machines Corporation Encoded text data management
CN108958683A (zh) * 2018-06-21 2018-12-07 江苏安科瑞电器制造有限公司 一种可实现菜单检索的数显设备和方法
CN108958683B (zh) * 2018-06-21 2021-08-24 江苏安科瑞电器制造有限公司 一种可实现菜单检索的数显设备和方法
CN113569534A (zh) * 2020-04-29 2021-10-29 杭州海康威视数字技术股份有限公司 一种检测文档中乱码的方法及装置

Also Published As

Publication number Publication date
WO2012068897A1 (zh) 2012-05-31

Similar Documents

Publication Publication Date Title
CN102479075A (zh) 嵌入式设备中多语言显示方法及装置
CN102662926B (zh) 字库的存储与访问方法
CN104281601B (zh) 构建超大字库的方法及装置、字符显示方法及装置
KR970071228A (ko) 단계적 표현 가능형 폰트(Progressively Renderable Font), 그 변환 방법 및 렌더링 방법
CN109375962A (zh) 基于嵌入式操作系统的汉字字符混合输出显示的实现方法
US20140049554A1 (en) Method of manipulating character string in embeded system
CN108961361B (zh) 生成特效文字图像的方法及系统、计算机设备
CN108108337A (zh) 简繁互转方法及装置
CN106898351B (zh) 一种大屏幕的控制方法及装置
CN104536947A (zh) 版式文档的处理方法及装置
CN101036137B (zh) 显示装置、用于显示装置的控制方法
CN105148519A (zh) 一种游戏程序中的文字渲染方法及系统
KR102149099B1 (ko) 문자 입력 장치 및 방법
EP1679614A2 (en) Method and apparatus for providing foreign language text display when encoding is not available
CN102750009B (zh) 一种无切换汉字输入法及键盘
KR102138434B1 (ko) 문자 입력 방법
CN101847050A (zh) 一种嵌入式产品中简单中文的输入及显示方法
CN105047181A (zh) 一种显示字符的方法及装置
WO2018187064A1 (en) Reduced memory footprint font sample strings
JP2017068307A (ja) 情報検索装置及びその制御方法、情報検索用プログラム
KR100238178B1 (ko) 컴퓨터의 어플리케이션 프로그램의 운용방법
US20010033285A1 (en) Character attribute setting device and method in document preparing apparatus
KR100522797B1 (ko) 아랍어 문자 코드 변환 장치 및 그 변환 방법
JPS61279973A (ja) 日本語処理装置
Stotz et al. The terminal for the military message experiment

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20120530