[发明专利]针对GBK编码的汉字自动校验和纠错系统及其方法有效
申请号: | 201010555569.6 | 申请日: | 2010-11-23 |
公开(公告)号: | CN102479174A | 公开(公告)日: | 2012-05-30 |
发明(设计)人: | 陈运文 | 申请(专利权)人: | 盛乐信息技术(上海)有限公司 |
主分类号: | G06F17/22 | 分类号: | G06F17/22;G06F17/27 |
代理公司: | 上海浦一知识产权代理有限公司 31211 | 代理人: | 刘昌荣 |
地址: | 201203 上海市浦*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 针对 gbk 编码 汉字 自动 校验 纠错 系统 及其 方法 | ||
技术领域
本发明涉及一种适用于GBK编码的汉字自动校验和纠错系统。本发明还涉及该系统的应用方法。
背景技术
GBK,全称《汉字内码扩展规范》,是全国信息技术标准化技术委员制订的汉字编码标准,它是在GB2312标准基础上的内码扩展规范,因此,与GB2312标准完全兼容。
GBK编码系统总计收录了21003个汉字,每个汉字用2个字节表示,其中,第一个字节的范围是0x81-0xFE,第二个字节的范围是0x40-0xFE。例如,“万钢充分肯定科技”这个短语对应的GBK编码,用16进制表示为“CD F2 B8 D6 B3E4 B7 D6 BF CF B6 A8 BF C6 BC BC”,其中,“CD F2”对应于“万”字,“B8 D6”对应于“钢”字,依此类推。
但是,GBK编码存在容错性差的缺点,当编码中出现单字节遗漏后,后续的所有汉字的编码都会出错,例如,上述“万钢充分肯定科技”这个短语,当其GBK编码串由于种种原因,导致第一个字节“CD”丢失后,系统仍会对后续编码以每两个字节为一个汉字字符来显示,这样,上述短语就被显示为“蚋殖浞挚隙萍冀”,短语中所有文字均被打乱了,这种现象称为中文编码的“雪崩效应”。上述问题在中文互联网传输文本时经常出现,它会使得文本传输时的细小差错被极度扩大,而导致全部文本无法正确阅读。
发明内容
本发明要解决的技术问题是提供一种针对GBK编码的汉字自动校验和纠错系统,它能够识别并纠正异常的GBK编码,恢复正确的文本字符。
为解决上述技术问题,本发明的针对GBK编码的汉字自动校验和纠错系统,包括有:
编码异常检测模块,用于检测GBK编码的中文字符串是否存在编码异常的情况;
纠错尝试模块,用于对编码异常检测模块识别出的编码异常的中文字符串,进行GBK编码纠错尝试,并将尝试识别结果传给纠错判别模块;
纠错判别模块,用于判别纠错尝试模块传来的尝试识别结果是否合理,并根据合理的尝试识别结果,对中文字符串进行纠错处理,输出纠错后的文本。
所述编码异常的判断依据是该中文字符串的乱码程度。乱码程度通过计算中文字符串中不常用汉字和常用汉字数量的差值得到。纠错尝试模块的尝试识别结果是否合理,可以依据纠错尝试前后,中文字符串的乱码程度进行判别。
所述GBK编码纠错尝试是对该中文字符串的GBK编码的高低字节进行重新组合。
本发明要解决的另一技术问题是提供一种基于上述系统的汉字自动校验和纠错方法。
为解决上述技术问题,本发明的针对GBK编码的汉字自动校验和纠错方法,包括如下步骤:
1)从待检测中文文本的头部开始,依次遍历文本,判断文本的GBK编码中连续的两个字节,是否满足条件:第一个字节属于0x81-0xFE,第二个字节属于0x40-0xFE,如果满足该条件,则将这两个字节记录到校验字符串中;如果不满足该条件,则将第二个字节设定为后续遍历的起点;
2)重复步骤1),依次遍历后续文本,直到校验字符串的长度达到预先设定的字节数时,转到步骤3);
3)将两个计数器count_1和count_2的初始值设为0,判断校验字符串中的各个汉字是否属于高频汉字,如果属于,则将count_1的数值加1;如果不属于,则再判断该汉字是否在GB2312标准的BOA1至F7FE字符范围内,如果不在该字符范围内,则将count_2的数值加1;
4)计算校验字符串的乱码程度:charnum=count_2-count_1;
5)判断步骤4)得到的charnum数值,若charnum<3,则认为校验字符串编码正常,转到步骤8);若charnum≥3,则认为校验字符串编码有错误,转到步骤6);
6)去除校验字符串的第一个和最后一个字节,按照步骤3),统计count_1和count_2的数值,计算纠错尝试后的乱码程度charnum_new;
7)比较charnum和charnum_new的数值大小,若charnum-charnum_new>8,则纠错成功,输出纠错后的文本;若4<charnum-charnum_new≤8,则以该校验字符串后续的第一个字节为遍历起点,重复步骤1)至7),判断下一个校验字符串是否满足4<charnum-charnum_new≤8,如果满足,则纠错成功,输出纠错后的文本;
8)对后续字符串依照步骤1)至7)进行遍历,直至遍历完该中文文本的全部字符。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于盛乐信息技术(上海)有限公司,未经盛乐信息技术(上海)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010555569.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:具有语义指导的报表设计
- 下一篇:二维光学检测的平场校正方法