[发明专利]文本文件的编码格式探测方法和装置有效
申请号: | 201010586125.9 | 申请日: | 2010-12-13 |
公开(公告)号: | CN102567293A | 公开(公告)日: | 2012-07-11 |
发明(设计)人: | 宋久元;展永定 | 申请(专利权)人: | 汉王科技股份有限公司 |
主分类号: | G06F17/22 | 分类号: | G06F17/22 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100193 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 文本文件 编码 格式 探测 方法 装置 | ||
技术领域
本发明属于文件处理领域,特别是涉及一种文本文件的编码格式探测方法。
背景技术
文本文件的字符编码规定了字符的存储方式,要获得文本内容并进行显示就必须知道这些文本文件在读入内存后的存储方式,即文件的编码格式。
目前常用的文本文件编码格式有:ASCII、GB2312、GBK、GB18030、BIG5、ISO-8859-1、UCS-2、UTF-16、UTF-8等,这些编码的格式、编码方式、长度均不同。在进行文本文件处理时,需要对这些不同的编码进行编码转换,防止文本文件在显示时产生乱码。
在对文本文件进行编码转换前,需要对文本文件的编码格式进行探测,常用的编码探测的方法为根据文本文件对应的编码字节序标识(BOM),即文本的前几个字节进行判定。例如前三个字节为EFBBBF,则为UTF-8编码格式;若前两个字节为FEFF则为UTF-16BE编码格式,若为FFFE则为UTF-16LE编码格式等。然而,这样的方法并不总是可行的,对于有些编码格式,例如ASCII、GB2312和UTF7编码等都没有编码字节序标识,对于这样的编码格式,通常采用给一个默认的编码格式进行编码转换,但默认的编码格式与文本文件的编码格式不一致则会使文本文件显示为乱码。
发明内容
本发明所要解决的技术问题是提供一种文本文件的编码格式探测方法和装置,对于符合编码字节序标识及不符合编码字节序标识的文字编码进行判断,并转换成符合的编码,减少乱码的产生。
本发明公开了一种文本文件的编码格式探测方法,包含有下列步骤:
步骤一:划分文本文件为多个文字段;
步骤二:如果当前文字段的中前4个字节的字节编码大于0x00且小于0x7F,则当前文字段的编码格式为ASCII;否则按照字节编码所采用的编码字节长度在对应的编码格式分组中进行探测,根据探测结果转换当前文字段为对应匹配的编码格式;
步骤三:读取下一文字段中的字节进行探测,直至全部文本文件转换完毕。
本发明还公开了一种文本文件的编码格式探测装置,包含有下列模块:
划分模块,划分文本文件为多个文字段;
探测模块,如果当前文字段中的前4个字节的字节编码大于0x00且小于0x7F,则当前文字段的编码格式为ASCII;否则按照字节编码所采用的编码字节长度在对应的编码格式分组中进行探测,根据探测结果转换当前文字段为对应匹配的编码格式;
循环模块,读取下一文字段中的字节进行探测,直至全部文本文件转换完毕。
本发明文本文件的编码格式探测方法和装置,按照字节编码所采用的编码字节长度所对应的编码格式分组,对不符合编码字节序标识的文字编码进行分组判断,对各种不同的编码格式进行编码转换,不仅避免了使显示时的编码格式与文本文件的字节编码不一致时产生的乱码,而且使文本文件能够更快速地进行编码转换。
附图说明
图1是本发明的文本文件的编码格式探测方法的流程图;
图2是本发明另一实施例的文本文件的编码格式探测方法的流程图。
具体实施方式
由于本发明公开了一种文本文件的编码格式探测方法和装置,特别是包含一种编码转换的方法。在本发明的实施例中所利用到的一些关于编码字节序标识、字节、字符集,是利用现有技术来达成,故在下述说明中,并不作完整描述,在先说明。
本发明公开了一种文本文件的编码格式探测方法,如图1所示,其具体步骤包括如下:
步骤101:首先,先从文本文件(如Word、txt等)中读取既定长度的文本文件,然后划分文本文件为若干个文字段,为了获取最快的速度,会根据文本文件的大小进行分段解析,同时由于文件本身存在混和编码的情况,对文字分段在一定程度上也可以解决混合编码的问题。
步骤102:如果当前文字段中的前4个字节的字节编码均大于0x00且小于0x7F,则当前文字段的编码格式为ASCII;否则按照字节编码所采用的编码字节长度在对应的编码格式分组中进行探测,根据探测结果转换当前文字段为对应匹配的编码格式。
本实施例中,首先对单字节的ASCII编码进行特殊处理。若当前文字段的中前4个字节的字节编码是大于0x00且小于0x7F,则确定当前文字段的编码格式为ASCII;也就是说若每个字节都是ASCII码,那么全文就是ASCII编码。否则按照编码格式所采用的编码字节长度将各种编码格式进行分组,采用分组中的编码格式对当前文字段中的字节进行编码格式分组内探测。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于汉王科技股份有限公司,未经汉王科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010586125.9/2.html,转载请声明来源钻瓜专利网。