编码查找的方法及装置转让专利

申请号 : CN200810055829.6

文献号 : CN101216847B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 黄慧进

申请人 : 华为终端有限公司

摘要 :

本发明实施例涉及一种编码查找方法,通过查找预先创建的UNICODE编码的连续区间索引表,并根据该索引表算出接收到的UNICODE编码对应的字形数据索引号,根据索引号再算出字形数据偏移量,从而查找到与编码对应的字形数据进行显示。本发明实施例还涉及一种编码查找装置,通过查找存储预先创建UNICODE编码的连续区间索引表,并在处理模块中根据该索引表算出接收到的UNICODE编码对应的字形数据索引号,根据索引号提取与编码对应的字形数据进行显示。该连续区间索引表,避免了存储所有UNICODE编码与GB2312编码的对应关系,可以大大节省宝贵的存储器空间。

权利要求 :

1.一种编码查找方法,其特征在于包括:

根据UNICODE编码,查找预先创建的连续区间索引表,得到与GB2312编码对应的字形数据索引号;

根据所述GB2312编码对应的字形数据索引号,得到与GB2312编码对应的字形数据偏移量;

根据所述字形数据偏移量,提取所述与GB2312编码对应的字形数据;

其中所述连续区间索引表中的连续区间为在UNICODE编码序列中存在的连续的编码序列块,该编码序列块中的编码与GB2312编码一一对应,所述连续区间索引表中包括编码序列块的上限UNICODE编码,及与该上限UNICODE编码对应的,与GB2312编码对应的字形数据索引号;或者所述连续区间索引表中包括编码序列块的下限UNICODE编码,及与下限UNICODE编码对应的,与GB2312编码对应的字形数据索引号;所述索引号为字形数据按照UNICODE编码顺序排列的序号。

2.根据权利要求1所述的编码查找方法,其特征在于还包括:存储创建的所述UNICODE编码的连续区间索引表。

3.根据权利要求1所述的编码查找方法,其特征在于将所述与GB2312编码对应的字形数据按照UNICODE编码顺序排列。

4.根据权利要求1、2或3所述的编码查找方法,其特征在于所述根据UNICODE编码,查找所述连续区间索引表,得到与GB2312编码对应的字形数据索引号包括:根据UNICODE编码,找到所述连续区间索引表中编码值小于等于该UNICODE编码的第一上限UNICODE编码及与其对应的所述与GB2312编码对应的第一字形数据索引号,和编码值大于该UNICODE编码的第二上限UNICODE编码及其对应的所述GB2312编码对应的第二字形数据索引号;

若所述UNICODE编码在所述第一上限UNICODE编码所处的编码序列块内,则得到所述UNICODE编码对应的所述与GB2312编码对应的字形数据索引号为所述UNICODE编码值与第一上限UNICODE编码值的差加上所述第一字形数据索引号。

5.根据权利要求4所述的编码查找方法,其特征在于所述根据UNICODE编码,查找所述连续区间索引表,得到与GB2312编码对应的字形数据索引号还包括:若所述UNICODE编码不在所述第一上限UNICODE编码所处的编码序列块内,则所述UNICODE编码不存在对应的所述与GB2312编码对应的字形数据。

6.根据权利要求4所述的编码查找方法,其特征在于所述根据UNICODE编码,查找所述连续区间索引表,得到与GB2312编码对应的字形数据索引号包括:根据UNICODE编码,找到所述连续区间索引表中编码值小于等于该UNICODE编码的第一下限UNICODE编码及与其对应的所述与GB2312编码对应的第一字形数据索引号,和编码值大于该UNICODE编码的第二下限UNICODE编码及其对应的所述GB2312编码对应的第二字形数据索引号,所述第一下限UNICODE编码值大于第二下限UNICODE编码值;

若所述UNICODE编码在所述第一下限UNICODE编码所处的编码序列块内,则得到所述UNICODE编码对应的所述与GB2312编码对应的字形数据索引号为所述UNICODE编码值与第二下限UNICODE编码值的差加上所述第二字形数据索引号。

7.根据权利要求6所述的编码查找方法,其特征在于所述根据UNICODE编码,查找所述连续区间索引表,得到与GB2312编码对应的字形数据索引号还包括:若所述UNICODE编码不在所述第一下限UNICODE编码所处的编码序列块内,则所述UNICODE编码不存在对应的所述与GB2312编码对应的字形数据。

8.一种编码查找装置,其特征在于包括:

处理模块,用于根据UNICODE编码,查找预先创建的连续区间索引表,得到与GB2312编码对应的字形数据的索引号;

计算模块,用于根据所述GB2312编码对应的字形数据的索引号,得到与GB2312编码对应的字形数据偏移量;

提取模块,用于根据所述字形数据偏移量,提取所述与GB2312编码对应的字形数据;

其中所述连续区间索引表中的连续区间为在UNICODE编码序列中存在的连续的编码序列块,该编码序列块中的编码与GB2312编码一一对应,所述连续区间索引表中包括编码序列块的上限UNICODE编码,及与该上限UNICODE编码对应的,与GB2312编码对应的字形数据索引号;或者所述连续区间索引表中包括编码序列块的下限UNICODE编码,及与下限UNICODE编码对应的,与GB2312编码对应的字形数据索引号;所述索引号为字形数据按照UNICODE编码顺序排列的序号。

9.根据权利要求8所述的编码查找装置,其特征在于还包括:存储模块,用于存储创建的所述UNICODE编码的连续区间索引表;并存储按照UNICODE编码顺序排列的所述与GB2312编码对应的字形数据。

10.根据权利要求8或9所述的编码查找装置,其特征在于所述处理模块包括:

查找模块,用于查找所述UNICODE编码在所述连续区间索引表中所处的区间;

判断模块,用于判断所述UNICODE编码是否处于一编码序列块中;

获取模块,用于获取按照UNICODE编码顺序排列的所述与GB2312编码对应的字形数据索引号。

说明书 :

技术领域

本发明涉及通信技术领域,特别涉及一种编码查找的方法及装置。

背景技术

UNICODE字符集作为一种使任何语言的字符都可以为机器更容易接受的一种字符集,其中共收录了20902个汉字字形数据。GB2312字符集总共收录了7445个图形字符数据,其中汉字字形数据有6763个。UNICODE字符集远远大于GB2312字符集中的汉字字形数据的数量。
在现有的支持简体中文的嵌入式系统内部,用于表示某一汉字的时候使用的是二个字符的UNICODE编码,而字体,也就是字形数据却是以GB2312编码的顺序排列。这是因为,在嵌入式系统中,由于受到其存储器大小的限制,支持简体中文的嵌入式系统普遍使用的是GB2312字符集。因此对于给定的UNICODE编码格式,首先要将其转化为GB2312编码格式,然后从字形数据中取出相应的字形数据,显示在屏幕上。
但是,由于UNICODE编码与GB2312编码的映射关系没有固定的规律可循,在现有的嵌入式系统中,都是采用将每个GB2312编码与对应的UNICODE编码放在一起(Gi,Uj),组成一个GB2312编码与UNICODE编码映射表。映射表中包含所有的(Gi,Uj)对应关系,给定一个UNICODE编码以后,再用快速查找算法找出对应的GB2312编码完成编码的转化。
由于对应与每一个字符都有一个(Gi,Uj)对应关系,因此需要维护一个GB2312编码与UNICODE编码的映射表,而由于对应关系的复杂性,导致该映射表非常大,所以需要很大的存储空间来存储,并且在查找时,非常浪费时间。

发明内容

本发明实施例提供一种编码映射的方法,以减小编码映射表中对应关系的复杂性,降低其所需存储空间的容量,节省查找时间。
本发明实施例一方面提供了一种编码查找方法,包括:
根据UNICODE编码,查找预先创建的连续区间索引表,得到与GB2312编码对应的字形数据的索引号;
根据所述GB2312编码对应的字形数据的索引号,得到与GB2312编码对应的字形数据偏移量;
根据所述字形数据偏移量,提取所述与GB2312编码对应的字形数据;
其中所述连续区间索引表中的连续区间为在UNICODE编码序列中存在的连续的编码序列块,该编码序列块中的编码与GB2312编码一一对应,所述连续区间索引表中包括编码序列块的上限UNICODE编码,及与该上限UNICODE编码对应的,与GB2312编码对应的字形数据索引号;或者所述连续区间索引表中包括编码序列块的下限UNICODE编码,及与下限UNICODE编码对应的,与GB2312编码对应的字形数据索引号;所述索引号为字形数据按照UNICODE编码顺序排列的序号。
本发明实施例另一方面提供了一种编码查找装置,包括:
处理模块,用于根据UNICODE编码,查找预先创建的连续区间索引表,得到与GB2312编码对应的字形数据的索引号;
计算模块,用于根据所述GB2312编码对应的字形数据的索引号,得到与GB2312编码对应的字形数据偏移量;
提取模块,用于根据所述字形数据偏移量,提取所述与GB2312编码对应的字形数据;
其中所述连续区间索引表中的连续区间为在UNICODE编码序列中存在的连续的编码序列块,该编码序列块中的编码与GB2312编码一一对应,所述连续区间索引表中包括编码序列块的上限UNICODE编码,及与该上限UNICODE编码对应的,与GB2312编码对应的字形数据索引号;或者所述连续区间索引表中包括编码序列块的下限UNICODE编码,及与下限UNICODE编码对应的,与GB2312编码对应的字形数据索引号;所述索引号为字形数据按照UNICODE编码顺序排列的序号。
由以上技术方案可知,本发明实施例的编码查找方法及装置,通过查找预先创建的UNICODE编码的连续区间索引表,并根据该索引表算出接收到的UNICODE编码对应的字形数据索引号,根据索引号再算出字形数据偏移量,从而查找到与编码对应的字形数据进行显示。该连续区间索引表,没有存储所有UNICODE编码与GB2312编码的对应关系,可以大大节省宝贵的存储器空间。
下面通过具体实施例并结合附图对本发明做进一步的详细描述。

附图说明

图1为本发明编码查找方法实施例一的流程示意图;
图2为本发明GB2312编码和UNICODE编码映射关系示意图
图3为本发明编码查找方法实施例二的流程示意图;
图4为本发明编码查找装置实施例的结构示意图。

具体实施方式

本发明实施例的方案是创建一种UNICODE编码的连续区间索引表,避免了将每个GB2312编码与对应的UNICODE编码创建对应关系,组成编码映射表,从而可以节省宝贵的存储器空间。
如图1所示,为本发明编码查找方法实施例一的流程示意图,包括如下步骤:
步骤101、根据UNICODE编码,查找预先创建的连续区间索引表,得到与GB2312编码对应的字形数据的索引号;
连续区间索引表中存储了部分UNICODE编码的代表值,及其对应的与GB2312编码对应的字形数据索引号;字形数据即为每个汉字对应的图片信息数据;与GB2312编码对应的字形数据索引号为在字形数据的集合中,与GB2312编码对应的那个字形数据处于该集合中的位置序号;
对于每个接收到的UNICODE编码,按照一定的策略查找连续区间索引表,由于预先将与GB2312编码对应的字形数据按照UNI CODE编码顺序进行排列,因此,找到了接收到的UNICODE编码在连续区间索引表中的位置,就可以得到与GB2312编码对应的字形数据的索引号;
步骤102、根据与GB2312编码对应的字形数据索引号,得到与GB2312编码对应的字形数据偏移量;
根据与GB2312编码对应的字形数据索引号可找到该字形数据在字形数据集合中的位置序号,根据该自行数据的字符对应的字体大小数据,找到该自行数据在集合中的字形数据偏移量;
步骤103、根据所述字形数据偏移量,提取与GB2312编码对应的字形数据。
计算与GB2312编码对应的字形数据偏移量,根据字形数据偏移量,提取字形数据对应的具体数据块信息,并显示出来。
本实施例提供的编码查找方法,通过查找创建的UNICODE编码的连续区间索引表,并根据该索引表算出接收到的UNICODE编码对应的字形数据索引号,根据索引号再算出字形数据偏移量,从而查找到与编码对应的字形数据进行显示。该连续区间索引表,没有存储所有UNICODE编码与GB2312编码的对应关系,可以大大节省宝贵的存储器空间。
如图2所示,为本发明GB2312编码和UNIC0DE编码映射关系示意图,有图中可见,GB2312编码和UNICODE编码的映射关系并没有固定的规律可循,但是可能某几个GB2312编码所对应的UNICODE编码在UNICODE字符集中是连续的,例如图2中的编码Un+4和编码Un+5及编码Un+13、编码Un+14和编码Un+15均为连续的编码序列块,在此基础上,本发明实施例提供了一种查找编码的方案,使GB2312编码和UNICODE编码对应关系表的存储容量大大减少。如图3所示,为本发明编码查找方法实施例二的流程示意图,包括如下步骤:
步骤201、将与GB2312编码对应的字形数据按照UNICODE编码顺序排列;
字形数据即为每个汉字对应的图片信息数据,在现有技术中,一般是将GB2312字符集中的字形数据按照GB2312编码的顺序来排列,本发明实施例中要将与GB2312编码对应的字形数据按照UNICODE编码顺序排列;
步骤202、存储创建的UNICODE编码的连续区间索引表;
所述连续区间索引表中的连续区间为在UNICODE编码序列中存在的连续的编码序列块,该编码序列块中的编码均可找到对应的GB2312编码。由于UNICODE编码和GB2312编码的映射关系没有固定的规律可循,可能在UNICODE编码序列中有多个连续的一段区间中的每个UNICODE编码都有对应的GB2312编码;也有可能在UNICODE编码序列中还存在多个不连续的仅有一个UNICODE编码与GB2312编码对应的情况;
该连续区间索引表中包括编码序列块的上限UNICODE编码,及与该上限UNICODE编码对应的,与GB2312编码对应的字形数据索引号,所述索引号为手形数据按照UNICODE编码顺序排列的序号。本实施例中,如图2所示,编码序列块有:编码Un+2,编码Un+4和编码Un+5,编码Un+10,编码Un+13、编码Un+14和编码Un+15,编码Un+18。编码序列块的上限UNICODE编码,即连续区间的第一个UNICODE编码分别为:编码Un+2,编码Un+4,编码Un+10,编码Un+13及编码Un+18。在本实施例中以编码Un+13和编码Un+18为例,其对应的与GB2312编码对应的字形数据索引号分别为索引号In、索引号In+1,所述索引号为字形数据按照UNICODE编码顺序排列的序号;
步骤203、根据UNICODE编码,找到连续区间索引表中编码值小于等于该UNICODE编码的第一上限UNICODE编码及与其对应的与GB2312编码对应的第一字形数据索引号,和编码值大于该UNICODE编码的第二上限UNICODE编码及其对应的GB2312编码对应的第二字形数据索引号;
例如某一UNICODE编码A,找到连续区间索引表中第一上限UNICODE编码Kn及其对应的GB2312编码对应的字形数据索引号In,和第二上限UNICODE编码Kn+1及其对应的GB2312编码对应的字形数据索引号In+1,其中编码值关系为Kn≤A<Kn+1;
步骤204、若UNICODE编码在第一上限UNICODE编码所处的编码序列块内,即若UNICODE编码A<Kn+In-1-In,则UNICODE编码A处于第一上限UNICODE编码Kn所标识的连续区间内,执行步骤205;否则,即A≥Kn+In+1-In,执行步骤206;
步骤205、得到UNICODE编码对应的,与GB2312编码对应的字形数据索引号IA为:UNICODE编码值与第一上限UNICODE编码值的差加上第一字形数据索引号;
即,IA=In+A-Kn;
步骤206、得到UNICODE编码对应的GB2312编码对应的字形数据索引号IA=-1,即UNICODE编码A不存在对应的GB2312编码对应的字形数据;
对于每个接收到的UNICODE编码,按照上述步骤203~步骤206的策略查找连续区间索引表中的上限UNICODE编码及对应的字形数据索引号,从而得到按照UNICODE编码顺序排列的与GB2312编码对应的字形数据索引号;
上述步骤203~步骤206还可以利用另外一种查找策略:对于某一UNICODE编码B,找到连续区间索引表中第一下限UNICODE编码Km+1及其对应的GB2312编码对应的字形数据索引号Im+1,和第二下限UNICODE编码Km及其对应的GB2312编码对应的字形数据索引号Im,其中编码值关系为Kn≤B<Km+1;若UNICODE编码B>Km+1-(Im+1-Im),则UNICODE编码B处于第一下限UNICODE编码Km+1所标识的连续区间内,IB=Im+1-(Km+1-B);若UNICODE编码B≤Km+1-(Im+1-Im),则UNICODE编码B不在第一下限UNICODE编码Km+1所标识的连续区间内,IB=-1;
步骤207、根据字形数据索引号IA或IB,得到按照UNICODE编码顺序排列的与GB2312编码对应的字形数据偏移量D,即D=IA/IB×L,其中L为每个字符对应的字体大小数据;
步骤208、按照得到的字形数据偏移量,提取与UNICODE编码A或B对应的与GB2312编码对应的字形数据,完成字形的显示。
本实施例提供的编码查找方法,通过查找存储的预先创建的UNICODE编码的连续区间索引表,并根据该索引表算出接收到的UNICODE编码对应的字形数据索引号,根据索引号再算出字形数据偏移量,从而查找到与编码对应的字形数据进行显示。该连续区间索引表,避免了存储所有UNICODE编码与GB2312编码的对应关系,可以大大节省宝贵的存储器空间。
如图4所示,为本发明编码查找装置实施例的结构示意图。该编码查找装置包括:
处理模块1,用于根据UNICODE编码,查找预先创建的连续区间索引表,得到与GB2312编码对应的字形数据的索引号;
计算模块2,用于根据处理模块1得到的与GB2312编码对应的字形数据的索引号,得到与GB2312编码对应的字形数据偏移量;
提取模块3,用于根据计算模块2得到的字形数据偏移量,提取与GB2312编码对应的字形数据。
该编码查找装置还可以进一步包括有:存储模块4,用于存储创建的所述UNICODE编码的连续区间索引表;并存储按照UNICODE编码顺序排列的所述与GB2312编码对应的字形数据,以备处理模块1使用。
在所述处理模块1中还可以包括:查找模块11,用于查找UNICODE编码在存储模块4中存储的预先创建的连续区间索引表中所处的区间;判断模块12,用于判断UNICODE编码是否处于一编码序列块中;获取模块13,用于根据判断模块12的判断,查找连续区间索引表,获取得到按照UNICODE编码顺序排列的与GB2312编码对应的字形数据索引号,并将其送往计算模块2。
本实施例提供的编码查找方法,通过查找存储的预先创建的UNICODE编码的连续区间索引表,并在处理模块1中根据该索引表算出接收到的UNICODE编码对应的字形数据索引号,根据索引号再算出字形数据偏移量,从而提取与编码对应的字形数据进行显示。该连续区间索引表,避免了存储所有UNICODE编码与GB2312编码的对应关系,可以大大节省宝贵的存储器空间。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。