一种编码转换方法

文档序号:7508633阅读:308来源:国知局
专利名称:一种编码转换方法
技术领域
本发明涉及一种编码转换方法,更确切地说,涉及一种应用于运算能力较低的便携式电子产品中的编码转换方法。
背景技术
由于手机的不断普及和电子消费技术的日新月异,用户对手机的要求在不断提高,手机具备的功能也相应增多,在这种趋势下,出现了在手机上阅读电子书这种用途,用户可以把电脑上的文本文档传到手机上进行阅读。目前个人电脑主要使用的是WINDOWS操作系统,一般用户的文本文档大都用ANSI编码格式进行保存,而普通手机上由于没有开放式操作系统,通常只能显示UNICODE或UTF-8编码格式的字符,这样就涉及到编码转换问题,通常用户会事先在电脑上进行编码转换工作,然后再将转换后的文件传到手机中去,在电脑上字符的ANSI编码和UNICODE或UTF-8编码之间的转换一般通过查表来完成,首先需要在电脑存储器中建立一张编码转换表格,这张表格由各字符对应的ANSI编码和UNICODE编码组成,如附图2所示,图中提供了现有的ANSI编码转换成UNICODE编码的表格一部分,第一列是ANSI编码序列,第二列是UNICODE编码序列,第三列是对应的注解,接着电脑处理器对ANSI编码序列逐个进行访问,查找准备送往屏幕显示的字符对应的ANSI编码,只有找到该ANSI编码后才能得到相应的UNICODE编码,由于这种方法需要对ANSI编码序列逐个进行访问,产生的运算量较大,电脑处理器运算性能很高,利用这种方式进行编码转换,耗用的时间很短,但电脑处理器不会自动进行转换工作,只有当人工适当操作后,电脑处理器才开始编码转换工作,这样就显得比较麻烦,不够方便,而在手机上采用这种编码转换方式,虽然省去了上述人工操作,但是由于手机处理器运算性能跟电脑处理器相比差距较大,转换速度较慢,会耗费比较长的时间,因此采用一种新的编码转换方法,降低手机处理器的工作量,提高编码转换效率将会给用户带来很大的便利。

发明内容本发明的目的在于克服上述缺陷,向用户提供一种编码转换方法,既能省去人工操作,也可以使运算能力较弱的便携式电子产品胜任编码转换工作。
根据本发明目的编码转换方法,其特征在于系统根据字符的格式I编码码值进行计算,得出该字符对应的格式II编码在格式II编码表中的偏移地址,然后根据该偏移地址在格式II编码表中找出对应的格式II编码。
格式II编码在格式II编码表中的偏移地址等于格式I编码在格式I编码序列中的偏移地址。
格式I编码为ANSI编码。
ANSI编码表空缺处可以补充缺失的ANSI编码,使得ANSI编码序列至少在局部保持连续。
ANSI编码表中空缺处补充的ANSI编码对应的格式II编码设置成空格,并将所述空格添加至格式II编码表中。
若文件中某字节的ANSI编码码值大于0×80,则系统将该字节以及该字节后面的一个字节结合起来表示一个字符。
格式II编码为UNICODE编码。
格式II编码为UTF-8编码。
相对于现有技术,本发明中便携式电子产品系统根据字符的ANSI编码码值计算出该字符对应的UNICODE编码在UNICODE编码表中的偏移地址,从而得到相应的UNICODE编码,有效地降低了系统的工作量,提高了系统的工作效率,节省了用户的宝贵时间,也省去了在电脑上进行编码转换之前人工操作带来的不便。

图1是根据本发明的一个实施例流程图;图2是现有技术中ANSI编码转换成UNICODE编码的表格一部分;图3是根据本发明的一个实施例中生成UNICODE编码表的示意图。
具体实施方式请参阅图1所示,图1是根据本发明的一个实施例流程图,用户没有预先在电脑上对文本文档进行编码格式转换,直接将文本文档以默认的ANSI编码格式传到处理能力较低的便携式电子产品如手机上,用户选择一个ANSI编码格式文档后,手机开始读取该文档内容,处理器按照指令从该文档中读出一个字节后,判断该字节的ANSI编码码值是否大于0×80,在美国制定的标准ASCII码中,每个英文字母或字符只需要1个字节储存,因此1个字节最多能表示256个英文字母或字符,且不与汉字圈使用,所以其它语言文字如中文,在标准ASCII码的基础上,以两个字节来表示一个汉字,建立出汉字输入规范,这种建立在标准ASCII码上的汉字圈延伸编码方式,称为ANSI编码,例如GBK编码就是这样一种ANSI编码,在ANSI编码字符集中前面编号为0至127的字符与标准ASCII字符集中相同,编号128至255的为扩展字符很少使用,从编号256起,每个字节和该字节后面的一个字节共同组成一个字来表达一个汉字,例如B 1BE这个编码就占据两个字节,用来表示“本”这个汉字。如果该字节ANSI编码码值低于0×80,那么该字节表示的字符就代表一个标准ASCII码中的英文字母或其它符号,可直接显示或者在前面加0×00变成双字节后再进行显示,这一步骤无需进行编码转换。如果该字节ANSI编码码值大于0×80,由于编号128至255的扩展字符很少被用到,系统就会认为该字节和下面的一个字节结合起来共同表示一个汉字,例如0×A2E1,由于第一个字节0×A2的码值大于0×80,系统接着取下一个字节0×E1,然后系统根据这两个字节的ANSI编码码值0×A2E1,计算出这两个字节所表示汉字的UNICODE编码在UNICODE编码表中的偏移地址,系统根据该偏移地址就能得到该汉字对应的UNICODE编码,从而将该汉字显示出来,接着系统继续读取文档中下一个字节,开始新一轮的编码转换工作。
请参阅图2所示,图2中提供了现有的ANSI编码转换成UNICODE编码的表格一部分,仔细观察可以发现ANSI编码序列中A2E2有对应字符,因此有相应的UNICODE编码,而A2E3、A2E4由于没有对应字符,因此在AN SI编码序列中并未出现这两个编码,而UNICODE编码序列中也没有对应的编码,直到A2E5才重新具有对应字符,因此ANSI编码序列并不是一直连续的,相反会在局部区域出现空缺和断裂,本图只是展示了其中一小部分空缺。
请参阅图3所示,图3是根据本发明的一个实施例中生成UNICODE编码表的示意图,图中第一列仍然为ANSI编码序列,第二列是UNICODE编码序列,但是ANSI编码序列中补上了0×A2E3、0×A2E4,相应地在UNICODE编码序列中也补上了0×3000,0×3000表示空格,这里也可以用其它UNICODE编码表示,并不会对字符的编码转换造成影响,根据需要对ANSI编码序列其它空缺处也补上缺失的ANSI编码,再在UNICODE编码序列中对应处也补上0×3000,最后取中间的UNICODE编码序列单独组建一个表,需要显示字符时,只要知道该字府对应的UNICODE编码在UNICODE编码表中的偏移地址,就可以直接访问该偏移地址得到UNICODE编码,从而将该字符显示出来。
在计算偏移地址时,采用如下方案因为对一个字符而言,其ANSI编码与UNICODE编码是一一对应的,UNICODE编码的偏移地址,也就是UNICODE编码在UNICODE编码表中所处的位置,与ANSI编码在ANSI编码序列中的所处位置是相同的,因此我们可以通过计算ANSI编码的位置来获得UNICODE编码的偏移地址,而ANSI编码序列中存在空缺,对ANSI编码的码值直接简单计算而不作修正得出的理论位置并不一定跟该编码实际所处的位置相同,由于进行这种计算对业界普通技术人员来说,是非常容易实施的,故此处不对具体计算进行描述。正如排队时编号为11的同学由于前面9号、10号同学的缺席而实际排在第九位一样,图1中的0×A2E5,该编码实际位置要比理论位置提前2位,将0×A2E3、0×A2E4补上后,再在UNICODE编码序列中补上两个0×3000,0×A2E5的实际位置向后挪了两位,才跟理论位置保持一致。所以ANSI编码序列中空缺的ANSI编码在UNICODE编码序列中对应的位置处是否补上0×3000,直接影响到对应ANSI编码排在该空缺之后的字符的UNICODE编码偏移地址,而该空缺之前的字符对应UNICODE编码偏移地址则不受该空缺影响。例如,ANSI编码序列中,0×A2E2占据两个字节来表示一个汉字,该汉字的ANSI编码码值就是0×A2E2,由于0×A2E3、0×A2E4都是在其后面补上的,因此0×A2E2所处位置不会发生改变,而0×A2E5排在0×A2E3、0×A2E4之后,因此所处位置后移了两位。本实施例为了计算上的方便,将ANSI编码序列中所有的空缺处都补上缺失的代码,并在UNICODE编码序列中对应的位置处补上0×3000,这样根据ANSI编码码值不作修正而直接计算出的理论位置就是UNICODE编码的偏移地址,非常简单,当然也可以只对ANSI编码序列中部分空缺进行补码或者干脆不补码,这样就需要对前面提到的理论值进行适当修正,才能保证结果的准确性,同样也可以用相同的方式在ANSI编码和UTF-8编码之间进行转换。
虽然上面的实施例仅对手机系统将ANSI编码转换成UNICODE编码进行了说明,但本发明适用范围并不局限于手机,其它具有处理器和存储器的电子产品按本发明进行的编码转换仍涵盖在本发明保护范围之内。
权利要求
1.一种编码转换方法,其特征在于系统根据字符的格式I编码码值进行计算,得出该字符对应的格式II编码在格式II编码表中的偏移地址,然后根据该偏移地址在格式II编码表中找出对应的格式II编码。
2.如权利要求1所述的编码转换方法,其特征在于格式II编码在格式II编码表中的偏移地址等于格式I编码在格式I编码序列中的偏移地址。
3.如权利要求1或2所述的编码转换方法,其特征在于格式I编码为ANSI编码。
4.如权利要求3所述的编码转换方法,其特征在于ANSI编码序列空缺处可以补充缺失的ANSI编码,使得ANSI编码序列至少在局部保持连续。
5.如权利要求4所述的编码转换方法,其特征在于ANSI编码表中空缺处补充的ANSI编码对应的格式II编码设置成空格,并将所述空格添加至格式II编码表中。
6.如权利要求3所述的编码转换方法,其特征在于若文件中某字节的ANSI编码码值大于0x80,则系统将该字节以及该字节后面的一个字节结合起来表示一个字符。
7.如权利要求1所述的编码转换方法,其特征在于格式II编码为UNICODE编码。
8.如权利要求1所述的编码转换方法,其特征在于格式II编码为UTF-8编码。
全文摘要
一种编码转换方法,适用于运算能力较低的便携式电子产品如手机上,系统根据字符的ANSI编码码值进行计算,得出该字符对应的UNICODE编码在UNICODE编码表中的偏移地址,然后根据该偏移地址在UNICODE编码表中找出对应的UNICODE编码,本发明有效地降低了手机系统的工作量,节省了用户的宝贵时间,也省去了在电脑上进行编码转换之前人工操作带来的不便。
文档编号H03M7/30GK1862525SQ20051002576
公开日2006年11月15日 申请日期2005年5月11日 优先权日2005年5月11日
发明者莫皓然, 徐征 申请人:上海迪比特实业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1