于嵌入式设备处理字符串的方法

文档序号:6489026阅读:477来源:国知局
于嵌入式设备处理字符串的方法
【专利摘要】本发明公开了一种于嵌入式设备中处理字符串的方法。该方法包括根据一原始字符串的多个字符的字符码及该多个字符的属性及/或颜色产生一具有特殊编码的字符串;根据该具有特殊编码的字符串产生一具有替换编码的字符串;对该具有替换编码的字符串的多个字符进行排版以产生一排版后的字符串;绘制具有属性及/或颜色的该排版后的字符串的多个字符;使用一显示器显示该具有属性及/或颜色的排版后的字符串的多个字符。本发明提供的方法可于嵌入式设备中处理字符串中具有属性的文字的排版或复杂文字的双向文字排序或处理复杂文字的组字规则。进而在嵌入式设备上输出或显示一般文字或复杂文字,且具有属性及颜色的排版后的字符串。
【专利说明】于嵌入式设备处理字符串的方法
【技术领域】
[0001]本发明是提供一种于嵌入式设备处理字符串的方法,尤指一种于嵌入式设备对包括复杂文字的字符串进行排版的方法。
【背景技术】
[0002]在各种不同的语言中,泰国(Thai)、高棉(Khmer)、緬甸(Myanmar)、印度文(Hindi)、孟加拉文(Bengali)及泰米尔文(Tamil)等语言属于复杂语系,这些语言的文字是由左向右排列,并由子音和元音以非常复杂的方式组合而成,一般的字型引擎无法处理。而阿拉伯文(Arabic)、波斯文(Farsi)及希伯来文(Hebrew)等语言也属于复杂语系,且这些语言的文字是由右向左排列,所以当这些语言的文字与其它由左向右排列的文字混合使用时便需要做双向文字排列。上述复杂语系的文字需要可以做双向文字排列(B1-directional text layout)的复杂语系文字排版引擎(complex script layoutengine)才能做正确组字及排版。例如有些复杂语系的字符在字符串中要编排至其它字符的前缀或字尾。
[0003]除了上述的复杂语系组字处理外,嵌入式设备有时也会通过文字排版引擎协助处理一般的中文、日文、韩文、英文、欧洲等语系的多行文字排版。
[0004]由于目前运算效能及内存资源相较于个人计算机甚为有限的嵌入式设备内的文字排版引擎虽然可以支持以2字节(bytes)统一码(Unicode)编码的纯文字字符串排版,但无法处理多数以4字节统一码编码的复杂语言文字或是具有属性或颜色的文字字符串排版。造成文件的数据无法正确显示的问题。

【发明内容】

[0005]本发明提供一种于嵌入式设备中处理字符串的方法。方法包括根据一原始字符串的多个字符的字符码及该多个字符的属性及/或颜色产生一具有特殊编码的字符串,再根据该具有特殊编码的字符串,通过该嵌入式设备的一特殊码与属性处理模块产生一具有替换编码的字符串。并根据该具有替换编码的字符串,通过该嵌入式设备的一文字排版引擎模块,对该具有替换编码的字符串的多个字符进行排版后产生一排版后的字符串,再根据该排版后的字符串,通过该嵌入式设备的一字型引擎模块绘制具有属性及/或颜色的该排版后的字符串的多个字符,再使用一显示器显示该具有属性及/或颜色的排版后的字符串的多个字符。
[0006]本发明提供的方法可于嵌入式设备中处理字符串中具有属性的文字的排版或复杂文字的双向文字排序或处理复杂文字的组字规则。进而在嵌入式设备上输出或显示一般文字或复杂文字,且具有属性及颜色的排版后的字符串。
【专利附图】

【附图说明】
[0007]图1为本发明一实施例说明于嵌入式设备中处理字符串的方法。[0008]图2为本发明一实施例说明嵌入式设备中用以执行图1方法的模块。
[0009]图3为本发明一实施例的字符串。
[0010]图4为本发明一实施例的字符串。
[0011]图5为本发明一实施例的字符串。
[0012]图6为本发明一实施例的字符串。
[0013]图7为本发明一实施例的字符串。
[0014]图8为本发明一实施例的字符串。
[0015]图9为本发明一实施例的字符串。
[0016]其中,附图标记说明如下:
[0017]100方法
[0018]102 ~110步骤
[0019]200嵌入式设备
[0020]202特殊码与属性处理模块
[0021]204文字排版引擎模块
[0022]206字型引擎模块
【具体实施方式】
[0023]本发明可于嵌入式设备中,对包括2字节标准字及文字属性及/或文字颜色的字符串,或对包括复杂文字、文字属性及/或文字颜色的字符串进行排版。本发明所述的文字可为需要4字节的字符码才可表示的文字,也就是文字的统一码(Unicode)大于65535而不属于2字节编码标准字的文字,例如Unicode Extension B (统一码文字扩展B区)的文字或是Unicode Emoticons (统一码表情符号)。本发明所述的文字属性(attribute)可以2字节或4字节表示,举例而言,以2字节表示文字属性时,0x0100可表示斜体字、0x0200可表示粗体字、0x0400可表示下划线、0x0800可表示外框。本发明所述的文字颜色可以2字节或4字节表示,举例而言,以4字节表示文字颜色时,0x00CCFF80可表示一文字的绿色程度为0x00、红色程度为OxCC、透明程度为OxFF、蓝色程度为0x80,而OxFFFFFFFF表示一文字的颜色为白色。
[0024]请参考图1及图2。图1为本发明一实施例说明于嵌入式设备中处理字符串的方法100。图2为本发明一实施例说明一嵌入式设备200中用以执行方法100的模块,可包括一特殊码与属性处理模块202、一文字排版引擎模块204及一字型引擎模块206。在另一实施例中,本发明的文字排版引擎模块204可以被复杂语系文字排版引擎模块取代。方法100可包括如下步骤:步骤102:根据一原始字符串的多个字符的字符码及多个字符的属性及/或颜色,产生一具有特殊编码的字符串;
[0025]步骤104:根据具有特殊编码的字符串,通过嵌入式设备200的特殊码与属性处理模块202,产生一具有替换编码的字符串;
[0026]步骤106:根据具有替换编码的字符串,通过嵌入式设备200的文字排版引擎模块204,对具有替换编码的字符串的多个字符进行排版,产生一排版后的字符串;
[0027]步骤108:根据排序后的字符串,通过嵌入式设备200的字型引擎模块206,绘制具有属性及/或颜色的该排序后的字符串的多个字符;[0028]步骤110:使用一显示器显示具有属性及/或颜色的排版后的字符串的多个字符。
[0029]步骤102可通过一编码模块实施,根据原始字符串的多个字符的字符码及多个字符的属性及/或颜色,产生具有特殊编码的字符串。在步骤102的原始字符串的多个字符的字符码可以是2字节或4字节的统一码。本发明中以U+代表字符用统一码编码且U+之后的数字代表16进位,统一码的编码格式可为UTF-8、UTF-16或UTF-32。举例而言,对未包括属性及颜色的原始字符串“ABC”,其2字节统一码字符编码表示为U+0041U+0042U+0043,分别对应字符A的统一码0041、字符B的统一码0042及字符C的统一码0043。
[0030]若原始字符串的多个字符包括复杂文字及/或具有属性及/或颜色,则可使用预先定义的特殊属性编码方式于步骤102中将原始字符串转换成具有特殊编码的字符串,特殊属性编码方式举例如下:
[0031]编码方式1:用于原始字符串中的字符为2字节统一码且文字属性以2字节表示时;
[0032]编码方式2:用于原始字符串中的字符为2字节统一码、文字属性以2字节表示且文字颜色以4字节表示时;
[0033]编码方式3:用于原始字符串中的字符为2字节统一码且文字颜色以4字节表示时;
[0034]编码方式4:用于原始字符串中的字符为4字节统一码时;
[0035]编码方式5:用于原始字符串中的字符为4字节统一码且文字属性以2字节表示时;
[0036]编码方式6:用于原始字符串中的字符为4字节统一码、文字属性以2字节表示且文字颜色以4字节表示时;
[0037]编码方式7:用于原始字符串中的字符为4字节统一码且文字颜色以4字节表示时。
[0038]在一根据编码方式I的实施例中,要在嵌入式设备200将图3的字符串,输出或显示成具有属性的排版后的字符串(该字符串的2字节统一码为U+0041U+0042U+0043)。首先,使用者可通过一应用程序设定一预设字符属性于编码模块内的一特殊属性查找表,例如将预设字符属性设定为字号26 (font size 26),以“0000001A”表示。本实施例中,因为在原始字符串的前面2字符U+0041及U+0042属于统一码的第O字面(小于0x10000),且文字属性为预设字符属性(font size 26),非特殊字符,所以编码模块会将原始字符串的前2字符分别编码为2字节统一码00410042。而原始字符串的第3个字符U+0043,其属性为font size 16及粗斜体字,并非预设字符属性,为特殊字符,所以编码模块在编辑第3个字符的文字属性时,会编码一 2字节的特殊码以代表第3个字符的统一码以及属性,例如特殊码可编码为F701以代表00430310,其中0043为第3个字符的字符码,而0310为第3个字符的属性,并且在特殊属性查找表内加入00430310,如此之后便可利用特殊码反向查找原始字符的字符码及属性。特殊码接着编码模块会产生具有特殊编码的字符串,其编码数据为00410042F7010000F8FF 000100010000001A 00430310,编码数据由左至右代表的意义如下:00410042F701是以统一码表示原始字符串的前2个字符及以特殊码表示原始字符串的第3个字符,0000表示该字符串结束,F8FF表示特殊属性查找表识别码,0001表示编码方式1,0001表示字符串中的特殊字符数目,000000IA表示预设字符属性,00430310表示特殊字符的统一码及属性。在本发明所有实施例,编码数据内的特殊属性查找表识别码、编码方式、特殊字符数目及预设字符属性可以全部省略或是只保留其中至少一项于编码数据中。
[0039]于步骤104,当特殊码与属性处理模块202接收到具有特殊编码的字符串后,便会将具有特殊编码的字符串中属于文字属性的特殊码替换回原始的字符码,例如本实施例中的F701会替换回0043,产生具有替换编码的字符串并于步骤106传入文字排版引擎模块204进行排版。排版后,文字排版引擎模块204会逐字比对排版后的字符串及具有特殊编码的字符串,将在两个字符串中相同且非以特殊码表示的字符,转换回预设字符属性及字符的2字节统一码,而以特殊码表示的字符,则通过特殊属性查找表,反向转换回原始字符的2字节统一码及原来字符的属性。再将还原的字符编码传入字型引擎模块206,执行步骤108及110,根据该多个字符的字符码及该多个字符的属性及/或颜色,各别绘制该多个字符。
[0040]在一根据编码方式2的实施例中,要在嵌入式设备200将图4的字符串,输出具有属性及颜色的排版后的字符串(该字符串的2字节统一码为U+0041U+0042U+0043)。首先,设定一预设字符属性及颜色于编码模块内的一特殊属性查找表,例如将预设字符属性设定为font size 26,颜色为黑色不透明,以“0000001A 0000FF00”表示。本实施例中,因为在原始字符串的前2字符U+0041及U+0042属于统一码的第O字面,且文字属性及颜色为预设字符属性及颜色,非特殊字符,所以编码模块会将原始字符串的前2字符分别编码为2字节统一码00410042。而原始字符串的第3个字符U+0043,其属性为font size 16及粗斜体字,颜色为红色不透明(图示中以网点表示红色不透明的字符),并非预设字符属性及颜色,为特殊字符,所以编码模块在编辑第3个字符的文字属性及颜色时,会编码一 2字节的特殊码以代表第3个字符的字符码以及第3个字符的属性及颜色,例如特殊码可编码为F701以代表0043031000FF FF00,其中0043为第3个字符的统一码,0310为第3个字符的属性(font size 16及粗斜体字),而00FF FF00为第3个字符的颜色(红色不透明),并且在特殊属性查找表内加入0043031000FF FF00,如此之后便可利用特殊码反向查找原始字符的字符码、属性及颜色。本发明所有实施例中,代表不同字符、不同属性及不同颜色的特殊码都不重复编码。接着编码模块会产生具有特殊编码的字符串,其编码数据为00410042F7010000F8FF 000200010000001A 0000FF000043031000FF FF00,编码数据由左至右代表的意义如下:00410042F701是以统一码表示原始字符串的前2个字符及以特殊码表示原始字符串的第3个字符,0000表示该字符串结束,F8FF表示特殊属性查找表识别码,0002表示编码方式2,0001表示字符串中的特殊字符数目,000000IA 0000FF00表示预设字符属性及颜色,0043031000FFFF00表示特殊字符的统一码、属性及颜色。
[0041]于步骤104,当特殊码与属性处理模块202接收到具有特殊编码的字符串后,便会将具有特殊编码的字符串中用以代表文字属性及文字颜色的特殊码替换回原始的字符码,例如本实施例中的F701会替换回0043,产生具有替换编码的字符串并于步骤106传入文字排版引擎模块204进行排版。排版后,文字排版引擎模块204会逐字比对排版后的字符串及具有特殊编码的字符串,将在两个字符串中相同且非以特殊码表示的字符,转换回预设字符属性及颜色及字符的2字节统一码,而以特殊码表示的字符,则通过特殊属性查找表,反向转换回原始字符的2字节统一码及原来字符的属性及颜色。再将还原的字符编码传入字型引擎模块206,执行步骤108及110。[0042]在一根据编码方式3的实施例中,要在嵌入式设备200将图5的字符串,输出具有颜色的排版后的字符串(该字符串的2字节统一码为U+0041U+0042U+0043)。首先,设定一预设字符颜色于编码模块内的一特殊属性查找表,例如将预设字符颜色设定为黑色不透明,以“00000000FF00”表示。本实施例中,因为在原始字符串的前2字符U+0041及U+0042属于统一码的第O字面,且文字颜色为预设字符颜色,非特殊字符,所以编码模块会将原始字符串的前2字符分别编码为2字节统一码00410042。而原始字符串的第3个字符U+0043,其颜色为红色不透明(图示中以网点表示红色不透明的字符),并非预设字符颜色,为特殊字符,所以编码模块在编辑第3个字符的文字颜色时,会编码一 2字节的特殊码以代表第3个字符的字符码以及颜色,例如特殊码可编码为F701以代表004300FF FF00,其中0043为第3个字符的统一码,OOFF FFOO为第3个字符的颜色(红色不透明),并且在特殊属性查找表内加入004300FF FF00,如此之后便可利用特殊码反向查找原始字符的字符码及颜色。接着编码模块会产生具有特殊编码的字符串,其编码数据为00410042F7010000F8FF0003000100000000FF00004300FF FF00,编码数据由左至右代表的意义如下:00410042F701是以统一码表示原始字符串的前面2个字符及以特殊码表示原始字符串的第3个字符,0000表示该字符串结束,F8FF表示特殊属性查找表识别码,0003表示编码方式3,0001表示字符串中的特殊字符数目,00000000FF00表示预设字符颜色,004300FF FFOO表示特殊字符的统一码及颜色。
[0043]于步骤104,当特殊码与属性处理模块202接收到具有特殊编码的字符串后,便会将具有特殊编码的字符串中用以代表文字颜色的特殊码替换回原始的字符码,例如本实施例中的F701会替换回0043,产生具有替换编码的字符串并于步骤106传入文字排版引擎模块204进行排版。排版后,文字排版引擎模块204会逐字比对排版后的字符串及具有特殊编码的字符串,将在两个字符串中相同且非以特殊码表示的字符,转换回预设字符颜色及字符的2字节统一码,而以特殊码表示的字符,则通过特殊属性查找表,反向转换回原始字符的2字节统一码及原来字符的颜色。再将还原的字符编码传入字型引擎模块206,执行步骤 108 及 110。
[0044]在一根据编码方式4的实施例中,要在嵌入式设备200将图6的字符串,输出包括复杂文字在内的排版后的字符串(该字符串的4字节统一码为U+00000041U+00000042U+00020018)。本实施例中,因为在原始字符串的前2字符U+00000041及U+00000042属于统一码的第O字面,非特殊字符,所以编码模块会将原始字符串的前面2字符分别编码为2字节统一码00410042。而原始字符串的第3个字符U+00020018属于统一码的第2字面(大于0x10000)的复杂文字,为特殊字符,所以编码模块在编辑第3个字符时,会编码一 2字节的特殊码以代表第3个字符的字符码,例如特殊码可编码为F701以代表00180002(以U+00020018编码存放在内存的方式表示),并且在特殊属性查找表内加入00180002,如此之后便可利用特殊码反向查找原始字符的字符码。接着编码模块会产生具有特殊编码的字符串,其编码数据为00410042F7010000F8FF0004000100180002,编码数据由左至右代表的意义如下:00410042F701是以统一码表示原始字符串的前2个字符及以特殊码表示原始字符串的第3个字符,0000表示该字符串结束,F8FF表示特殊属性查找表识别码,0004表示编码方式4,0001表示字符串中的特殊字符数目,00180002表示特殊字符的统一码。[0045]于步骤104,当特殊码与属性处理模块202接收到具有特殊编码的字符串后,可将具有特殊编码的字符串中属于复杂文字的特殊码按照复杂文字所属的语言替换成同语言中可以2字节统一码表示的另一字符,例如本实施例中的F701可替换成中文的另一字符统一码U+4E00,以使文字排版引擎模块204按照符合该语言的书写方式对字符串中的复杂文字进行排版。或可按照字符串由左至右或由右至左的排列方式,将属于复杂文字的特殊码以具有相同排列方式的语言中可以2字节统一码表示的另一字符编码替换。或可不分语系将属于复杂文字的特殊码全部替换成同一个2字节字符码。接着产生具有替换编码的字符串,并于步骤106传入文字排版引擎模块204,如此可以最有效率的方式对包括复杂文字的字符串做双向(由左至右或由右至左)排序与复杂语系组字规则的处理。排版后,文字排版引擎模块204会逐字比对排版后的字符串及具有特殊编码的字符串,将两个字符串中相同且非以特殊码表示的字符,转换回字符的统一码,而以特殊码表示的字符,通过特殊属性查找表,反向转换回原始字符的4字节统一码。再将还原的字符编码传入字型引擎模块206,执行步骤108及110。
[0046]在一根据编码方式5的实施例中,要在嵌入式设备200将图7的字符串,输出包括复杂文字在内及具有属性的排版后的字符串(该字符串的4字节统一码为U+00000041U+00000042U+00000043U+00020018)。首先,设定一预设字符属性于编码模块内的一特殊属性查找表,例如将预设字符属性设定为font size 26,以“00000000001A”表示。本实施例中,因为在原始字符串的前2字符U+00000041及U+00000042属于统一码的第O字面,且文字属性为预设字符属性font size 26,非特殊字符,所以编码模块会将原始字符串的前2字符分别编码为2字节统一码00410042。原始字符串的第3个字符U+00000043,属性为font size 16及粗斜体字,为特殊字符,所以编码模块在编辑第3个字符时,会编码一 2字节的特殊码以代表第3个字符的字符码,例如特殊码可编码为F701以代表004300000310,其中00430000为第3个字符的字符码,而0310为第3个字符的属性,并且在特殊属性查找表内加入004300000310。原始字符串的第4个字符U+00020018属于复杂文字,属性为font size 26及粗斜体字,为特殊字符,所以编码模块在编辑第4个字符时,会编码一 2字节的特殊码以代表第4个字符的字符码,例如特殊码可编码为F702以代表00180002031A,其中00180002为第4个字符的字符码,而031A为第4个字符的属性,并且在特殊属性查找表内加入00180002031A,如此之后便可利用特殊码反向查找原始字符的字符码及属性。接着编码模块会产生具有特殊编码的字符串,其编码数据为00410042F701F7020000F8FF0005000200000000001A 00430000031000180002031A,编码数据由左至右代表的意义如下:00410042F701F702是以统一码表示原始字符串的前2个字符及以特殊码表示原始字符串的后2个字符,0000表示该字符串结束,F8FF表示特殊属性查找表识别码,0005表示编码方式5,0002表示字符串中的特殊字符数目,0000000000IA表示预设字符属性,004300000310表不第3字符的统一码及属性,00180002031A表不第4字符的统一码及属性。
[0047]于步骤104,当特殊码与属性处理模块202接收到具有特殊编码的字符串后,可将具有特殊编码的字符串中属于文字属性的特殊码替换回原始的字符码,例如本实施例中的F701会替换回0043,而具有特殊编码的字符串中属于复杂文字的特殊码依照复杂文字所属的语言替换成同语言中可以2字节统一码表示的另一字符,例如本实施例中的F701可替换成中文的另一字符统一码U+4E00,以使文字排版引擎模块204按照符合该语言的书写方式对字符串中的复杂文字进行排版。或可按照字符串由左至右或由右至左的排列方式,将属于复杂文字的特殊码以具有相同排列方式的语言中可以2字节统一码表示的另一字符编码替换。或可不分语系将属于复杂文字的特殊码全部替换成同一个2字节字符码。产生具有替换编码的字符串并于步骤106传入文字排版引擎模块204。排版后,文字排版引擎模块204会逐字比对排版后的字符串及具有特殊编码的字符串,两个字符串中相同且非以特殊码表示的字符,转换回字符的统一码,而以特殊码表示的字符,通过特殊属性查找表,反向转换回原始字符的4字节统一码及原始字符的属性。再将还原的字符编码传入字型引擎模块206,执行步骤108及110。
[0048]在一根据编码方式6的实施例中,要在嵌入式设备200将图8的字符串,输出包括复杂文字在内及具有属性及颜色的排版后的字符串(该字符串的4字节统一码为U+00000041U+00000042U+00000043U+00020018)。首先,设定一预设字符属性及颜色于编码模块内的一特殊属性查找表,例如将预设字符属性设定为font size 26,颜色为黑色不透明,以“0000000000IA 0000FF00 ”表示。本实施例中,因为在原始字符串的前2字符U+00000041及U+00000042属于统一码的第O字面,且文字属性为预设字符属性font size 26,颜色为黑色不透明,非特殊字符,所以编码模块会将原始字符串的前2字符分别编码为2字节统一码00410042。原始字符串的第3个字符U+00000043,属性为font size 16及粗斜体字,颜色为黑色不透明,为特殊字符,所以编码模块在编辑第3个字符时,会编码一 2字节的特殊码以代表第3个字符的字符码及属性及颜色,例如特殊码可编码为F701以代表0043000003100000FF00,其中00430000为第3个字符的字符码,0310为第3个字符的属性,0000FF00为第3个字符的颜色,并且在特殊属性查找表内加入0043000003100000FF00。原始字符串的第4个字符U+00020018属于复杂文字,属性为font size 26及粗斜体字,颜色为红色不透明(图示中以网点表示红色不透明的字符),为特殊字符,所以编码模块在编辑第4个字符时,会编码一 2字节的特殊码以代表第4个字符的字符码及属性及颜色,例如特殊码可编码为F702以代表00180002031A OOFF FF00,其中00180002为第4个字符的字符码,而031A为第4个字符的属性,OOFF FFOO为第4个字符的颜色,并且在特殊属性查找表内加入00180002031A OOFF FF00,如此之后便可利用特殊码反向查找原始字符的字符码、属性及颜色。接着编码模块会产生具有特殊编码的字符串,其编码数据为 00410042F701F7020000F8FF 0006000200000000001A 0000FF000043000003100000FF0000180002031A OOFF FF00,编码数据由左至右代表的意义如下:00410042F701F702是以统一码表示原始字符串的前2个字符及以特殊码表示原始字符串的后2个字符,0000表示该字符串结束,F8FF表示特殊属性查找表识别码,0006表示编码方式6,0002表示字符串中的特殊字符数目,00000000001A表示预设字符属性,0000FF00表示预设字符颜色,0043000003100000FF00表示第3字符的统一码及属性及颜色,00180002031A OOFF FFOO表示第4字符的统一码及属性及颜色。
[0049]于步骤104,当特殊码与属性处理模块202接收到具有特殊编码的字符串后,产生具有替换编码的字符串及对字符串排版的方式同上述数个实施例所述,不再赘述。接着执行步骤106、108及110。
[0050]在一根据编码方式7的实施例中,要在嵌入式设备200将图9的字符串,输出包括复杂文字在内及具有颜色的排版后的字符串(该字符串的4字节统一码为U+00000041U+00000042U+00020018)。首先,设定一预设字符颜色于编码模块内的一特殊属性查找表,例如将预设字符颜色设定为黑色不透明,以“OOOOOOOOOOOOFFOO”表示。本实施例中,因为在原始字符串的前2字符U+00000041及U+00000042属于统一码的第O字面,颜色为预设字符颜色,非特殊字符,所以编码模块会将原始字符串的前2字符分别编码为2字节统一码00410042。原始字符串的第3个字符U+00020018属于复杂文字,颜色为红色不透明(图示中以网点表示红色不透明的字符),为特殊字符,所以编码模块在编辑第3个字符时,会编码一 2字节的特殊码以代表第3个字符的字符码及颜色,例如特殊码可编码为F702以代表0018000200FF FF00,其中00180002为第3个字符的字符码,OOFF FFOO为第3个字符的颜色,并且在特殊属性查找表内加入0018000200FF FFOO,如此之后便可利用特殊码反向查找原始字符的字符码及颜色。接着编码模块会产生具有特殊编码的字符串,其编码数据为 00410042F7010000F8FF 00070001000000000000FF000018000200FF FF00,编码数据由左至右代表的意义如下:00410042F701是以统一码表示原始字符串的前面2个字符及以特殊码表示原始字符串的后面2个字符,0000表示该字符串结束,F8FF表示特殊属性查找表识别码,0007表示编码方式7,0001表示字符串中的特殊字符数目,OOOOOOOOOOOOFFOO表示预设字符颜色,0018000200FF FF00表示第3字符的统一码及属性及颜色。
[0051]于步骤104,当特殊码与属性处理模块202接收到具有特殊编码的字符串后,产生具有替换编码的字符串及对字符串排版的方式同上述数个实施例所述,不再赘述。接着执行步骤106、108及110。
[0052]综上所述,本发明可以嵌入式设备上使用有限的内存存放字符属性数据或字符码,使用嵌入式设备上原有的2字节文字排版引擎模块204处理字符串中具有属性的文字的排版或复杂文字的双向文字排序以及处理复杂文字的组字规则。进而在嵌入式设备上输出或显示包括复杂文字且具有属性及颜色的排版后的字符串,更明确及清楚的显示文件中字符串的字符。
[0053]以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种于嵌入式设备中处理字符串的方法,该方法的特征在于包括: 根据一原始字符串的多个字符的字符码及该多个字符的属性及/或颜色,产生一具有特殊编码的字符串; 根据该具有特殊编码的字符串,通过该嵌入式设备的一特殊码与属性处理模块,产生一具有替换编码的字符串; 根据该具有替换编码的字符串,通过该嵌入式设备的一文字排版引擎模块,对该具有替换编码的字符串的多个字符进行排版,产生一排版后的字符串; 根据该排版后的字符串,通过该嵌入式设备的一字型引擎模块,绘制具有属性及/或颜色的该排版后的字符串的多个字符;及 使用一显示器显示该具有属性及/或颜色的排序后的字符串的多个字符。
2.如权利要求1所述的方法,其特征在于,该原始字符串的多个字符的字符码是二字节或四字节编码。
3.如权利要求1所述的方法,其特征在于,产生该具有特殊编码的字符串包括将该原始字符串的多个字符的字符码由四字节编码为二字节。
4.如权利要求1所述的方法,其特征在于,该原始字符串的多个字符的属性是以二字节或四字节表示。
5.如权利要求1所述的方法,其特征在于,该原始字符串的多个字符的颜色是以二字节或四字节表示。
6.如权利要求1所述的方法,其特征在于,根据该原始字符串的多个字符的字符码及该多个字符的属性及/或颜色,产生该具有特殊编码的字符串,包括将该原始字符串的多个字符的字符码及该多个字符的属性及/或颜色,编码为各别对应的多个特殊码。
7.如权利要求6所述的方法,其特征在于,该多个特殊码的每一特殊码是二字节。
8.如权利要求1所述的方法,其特征在于,根据该排序后的字符串,通过该嵌入式设备的一字型引擎模块,绘制具有属性及/或颜色的该排序后的字符串的多个字符,是根据该多个字符的字符码及该多个字符的属性及/或颜色,各别绘制该多个字符。
9.如权利要求1所述的方法,其特征在于,该文字排版引擎模块是复杂语系文字排版引擎模块。
【文档编号】G06F17/25GK103593332SQ201210351957
【公开日】2014年2月19日 申请日期:2012年9月20日 优先权日:2012年8月15日
【发明者】陈万治, 曹文凯 申请人:文鼎科技开发股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1