一种选择读取目标文档的编码格式的方法及其系统.pdf

上传人:32 文档编号:4042697 上传时间:2018-08-12 格式:PDF 页数:16 大小:1.18MB
返回 下载 相关 举报
摘要
申请专利号:

CN201310456276.6

申请日:

2013.09.29

公开号:

CN104516862A

公开日:

2015.04.15

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 17/22申请日:20130929|||公开

IPC分类号:

G06F17/22

主分类号:

G06F17/22

申请人:

北大方正集团有限公司; 北京方正阿帕比技术有限公司; 北京大学

发明人:

叶茂; 万巍; 金立峰; 王元龙

地址:

100871北京市海淀区成府路298号方正大厦9层

优先权:

专利代理机构:

北京三聚阳光知识产权代理有限公司11250

代理人:

寇海侠

PDF下载: PDF下载
内容摘要

本发明提供一种选择读取目标文档的编码格式的方法及其系统,首先通过参考编码格式读取参考文档获得乱码模式,然后在对目标文档读取时,对于每种编码格式,将该编码格式读取所述目标文档时产生的数据与确定的乱码模式进行比较,确定利用该编码格式读取所述目标文档时产生的乱码;再统计利用每种编码格式读取所述目标文档时产生的乱码,并进行比较,然后确定读取所述目标文档的编码格式。上述技术方案有效避免了现有技术中只是读出所述目标文档的前几个字节,判定这些字节的值,从而得知其编码的格式,但是,有时候,目标文档的前几个字节并没有保留该文档的编码格式信息,无法获得该文档的编码格式的问题。

权利要求书

权利要求书
1.  一种选择读取目标文档的编码格式的方法,其特征在于,包 括:
通过至少一个参考编码格式读取参考文档,确定利用所述参考编 码格式读取参考文档时得到的全部或部分乱码模式;
每次利用一种编码格式读取目标文档;
对于每种编码格式,将该编码格式读取所述目标文档时产生的数 据与确定的乱码模式进行比较,确定利用该编码格式读取所述目标文 档时产生的乱码;
统计利用每种编码格式读取所述目标文档时产生的乱码,并进行 比较,然后确定读取所述目标文档的编码格式。

2.  根据权利要求1所述的选择读取目标文档的编码格式的方法, 其特征在于,所述参考编码格式属于包含了全部或部分编码格式的编 码格式集,且所述参考编码格式是该编码格式集中读取所述参考文档 时会产生乱码的编码格式。

3.  根据权利要求1或2所述的选择读取目标文档的编码格式的 方法,其特征在于,通过所有的参考编码格式读取参考文档,确定利 用所述参考编码格式读取参考文档时得到的全部或部分乱码模式。

4.  根据权利要求1-3中任一所述的选择读取目标文档的编码格 式的方法,其特征在于,所述确定利用所述参考编码格式读取参考文 档时得到的全部或部分乱码模式的过程如下:
对于使用参考编码格式读取参考文档时获得的乱码字符串,删除 乱码字符串中的非有效判断字符,获取有效判断字符;统计有效判断 字符中乱码字符的出现次数,获取乱码模式。

5.  根据权利要求4所述的选择读取目标文档的编码格式的方法, 其特征在于,所述非有效判断字符指英文字母、数字和空白字符; 所述有效判断字符指除所述非有效判断字符以外的所有字符。

6.  根据权利要求4所述的选择读取目标文档的编码格式的方法, 其特征在于,统计有效判断字符中乱码字符的出现次数,获取乱码模 式时,预先设定次数的阈值,对于出现次数大于所述阈值的所有乱码 字符,保存为乱码模式。

7.  根据权利要求4所述的选择读取目标文档的编码格式的方法, 其特征在于,统计有效判断字符中乱码字符的出现次数,获取乱码模 式时,按乱码字符出现次数倒序排列乱码字符;取得排列在前的部分 乱码字符,并将所取的乱码字符保存为乱码模式。

8.  根据权利要求7所述的选择读取目标文档的编码格式的方法, 其特征在于,取得排列在前k%的乱码字符,并将所取的乱码字符保 存为乱码模式,其中k为正数,50≤k≤100。

9.  根据权利要求1-8中任一所述的选择读取目标文档的编码格 式的方法,其特征在于,所述每次利用一种编码格式读取目标文档时 读取部分内容,直到获得预先设置的有效判断字符数为止;若读取所 述文档的所有内容后仍未获得预先设置的有效判断字符数,则按实际 获取的有效判断字符数为准。

10.  根据权利要求9中任一所述的选择读取目标文档的编码格 式的方法,其特征在于,有效判断字符数为50-1000。

11.  根据权利要求1-10中任一所述的选择读取目标文档的编码 格式的方法,其特征在于,将该编码格式读取所述目标文档时产生的 数据与确定的乱码模式进行比较,确定利用该编码格式读取所述目标 文档时产生的乱码的过程为:
将通过每个编码格式读取所述目标文档时产生的数据逐个与所 述乱码模式中的乱码字符比较,如果乱码字符包含此数据,则判定此 数据为乱码,否则,则不认为该数据为乱码。

12.  根据权利要求1-11中任一所述的选择读取目标文档的编码 格式的方法,其特征在于,统计利用每种编码格式读取所述目标文档 时产生的乱码,并进行比较,然后确定读取所述目标文档的编码格式 的过程为:
统计利用每种编码格式读取所述目标文档时产生的乱码比例,选 择乱码比例最低的编码格式作为读取所述目标文档的编码格式。

13.  根据权利要求1-11中任一所述的选择读取目标文档的编码 格式的方法,其特征在于,统计利用每种编码格式读取所述目标文档 时产生的乱码,并进行比较,然后确定读取所述目标文档的编码格式 的过程为:
统计利用每种编码格式读取所述目标文档时产生的乱码比例,选 择乱码比例低于预设阈值的编码格式作为读取所述目标文档的编码 格式。

14.  根据权利要求12-13中任一所述的选择读取目标文档的编 码格式的方法,其特征在于:所述乱码比例为所述乱码字符占有效判 断字符的比例。

15.  根据权利要求1-14中任一所述的选择读取目标文档的编码 格式的方法,其特征在于:在每次利用一种编码格式读取目标文档时, 所述编码格式属于所述编码格式集。

16.  一种选择读取目标文档的编码格式的系统,其特征在于,包 括:
乱码模式生成模块,用于通过至少一个参考编码格式读取参考文 档,确定利用所述参考编码格式读取参考文档时得到的全部或部分乱 码模式;
目标文档读取模块,用于每次利用一种编码格式读取目标文档;
读取乱码模块,用于对于每种编码格式,将该编码格式读取所述 目标文档时产生的数据与确定的乱码模式进行比较,确定利用该编码 格式读取所述目标文档时产生的乱码;
读取编码格式选择模块,用于统计利用每种编码格式读取所述目 标文档时产生的乱码,并进行比较,然后确定读取所述目标文档的编 码格式。

17.  根据权利要求16所述的选择读取目标文档的编码格式的系 统,其特征在于,所述参考编码格式属于包含了全部或部分编码格式 的编码格式集,且所述参考编码格式是该编码格式集中读取所述参考 文档时会产生乱码的编码格式。

18.  根据权利要求16或17所述的选择读取目标文档的编码格式 的系统,其特征在于,通过所有的参考编码格式读取参考文档,确定 利用所述参考编码格式读取参考文档时得到的全部或部分乱码模式。

19.  根据权利要求16-18中任一所述的选择读取目标文档的编 码格式的系统,其特征在于,所述确定利用所述参考编码格式读取 参考文档时得到的全部或部分乱码模式的过程如下:
对于使用参考编码格式读取参考文档时获得的乱码字符串,删除 乱码字符串中的非有效判断字符,获取有效判断字符;统计有效判断 字符中乱码字符的出现次数,获取乱码模式。

20.  根据权利要求19所述的选择读取目标文档的编码格式的系 统,其特征在于,所述非有效判断字符指英文字母、数字和空白字 符;所述有效判断字符指除所述非有效判断字符以外的所有字符。

21.  根据权利要求19所述的选择读取目标文档的编码格式的系 统,其特征在于,统计有效判断字符中乱码字符的出现次数,获取乱 码模式时,预先设定次数的阈值,对于出现次数大于所述阈值的所有 乱码字符,保存为乱码模式。

22.  根据权利要求19所述的选择读取目标文档的编码格式的系 统,其特征在于,统计有效判断字符中乱码字符的出现次数,获取乱 码模式时,按乱码字符出现次数倒序排列乱码字符;取得排列在前的 部分乱码字符,并将所取的乱码字符保存为乱码模式。

23.  根据权利要求22所述的选择读取目标文档的编码格式的系 统,其特征在于,取得排列在前k%的乱码字符,并将所取的乱码字 符保存为乱码模式,其中k为正数,50≤k≤100。

24.  根据权利要求16-23中任一所述的选择读取目标文档的编 码格式的系统,其特征在于,所述每次利用一种编码格式读取目标文 档时读取部分内容,直到获得预先设置的有效判断字符数为止;若读 取所述文档的所有内容后仍未获得预先设置的有效判断字符数,则按 实际获取的有效判断字符数为准。

25.  根据权利要求24所述的选择读取目标文档的编码格式的系 统,其特征在于,有效判断字符数为50-1000。

26.  根据权利要求16-25中任一所述的选择读取目标文档的编 码格式的系统,其特征在于,将该编码格式读取所述目标文档时产生 的数据与确定的乱码模式进行比较,确定利用该编码格式读取所述目 标文档时产生的乱码的过程为:
将通过每个编码格式读取所述目标文档时产生的数据逐个与所 述乱码模式中的乱码字符比较,如果乱码字符包含此数据,则判定此 数据为乱码,否则,则不认为该数据为乱码。

27.  根据权利要求16-26中任一所述的选择读取目标文档的编码 格式的系统,其特征在于,统计利用每种编码格式读取所述目标文档 时产生的乱码,并进行比较,然后确定读取所述目标文档的编码格式 的过程为:
统计利用每种编码格式读取所述目标文档时产生的乱码比例,选 择乱码比例最低的编码格式作为读取所述目标文档的编码格式。

28.  根据权利要求16-26中任一所述的选择读取目标文档的编码 格式的系统,其特征在于,统计利用每种编码格式读取所述目标文档 时产生的乱码,并进行比较,然后确定读取所述目标文档的编码格式 的过程为:
统计利用每种编码格式读取所述目标文档时产生的乱码比例,选 择乱码比例低于预设阈值的编码格式作为读取所述目标文档的编码 格式。

29.  根据权利要求27-28中任一所述的选择读取目标文档的编 码格式的系统,其特征在于,所述乱码比例为所述乱码字符占有效判 断字符的比例。

30.  根据权利要求16-29中任一所述的选择读取目标文档的编 码格式的系统,其特征在于,在每次利用一种编码格式读取目标文档 时,所述编码格式属于所述编码格式集。

说明书

说明书一种选择读取目标文档的编码格式的方法及其系统
技术领域
本发明涉及一种选择读取目标文档的编码格式的方法及其系统, 属于电数字数据处理技术领域。
背景技术
编码格式是指用预先规定的方法将文字、数字或其他对象编成数 码。编码格式在电子计算机、电视等相关领域广泛使用。文件编码格 式也称为字符编码格式,用于指定在处理文本时如何表示字符。读取 中文文件时,未正确匹配文件编码格式的情况可能会导致发生异常或 产生不正确的结果。常见的汉字编码格式包括GB2312、BIG5、GBK、 UTF-8等,对于简体汉字的编码格式,目前又以GB2312和UTF-8最 为常用。
在windows系统中,文本文档被广泛使用,开发人员在编写程序 读取文档时经常遇到中文编码格式问题。例如,当读取一个文档进行 后续处理时,发现程序产出的结果与预期不一致,通过调试跟踪,发 现根本原因是读取文件时,由于程序中用于读取文件的编码格式与文 件本身的编码格式不一致,导致程序读取得到的是乱码,从而带来了 后续的错误。这种情况普遍存在于开发过程中。此外,当需要读取的 文档数量很多,并且这些文件的编码格式可能不一致时,就更需要能 够有一种选择读取目标文档的编码格式的方法来提高开发效率。
现有技术中公开的文本文档的编码格式读取方法,是读出文本文 档的前几个字节,判定这些字节的值,从而得知其编码的格式。但是, 有时候,文本文档的前几个字节并没有保留该文本文档的编码格式信 息,通过这种方法就无法得到该文本文档的编码格式。如果能够有一 种机制,通过选择正确的编码格式来读取文档,将可以大大降低由于 文件编码格式引起的问题,提高开发效率。
发明内容
本发明所要解决的技术问题是现有技术只是读出所述目标文档 的前几个字节,判定这些字节的值,从而得知其编码的格式,但是, 有时候,目标文档的前几个字节并没有保留该文档的编码格式信息, 无法获得该文档的编码格式的问题。
为解决上述技术问题,本发明是通过以下技术方案实现的:
一种选择读取目标文档的编码格式的方法,包括:
通过至少一个参考编码格式读取参考文档,确定利用所述参考编 码格式读取参考文档时得到的全部或部分乱码模式;
每次利用一种编码格式读取目标文档;
对于每种编码格式,将该编码格式读取所述目标文档时产生的数 据与确定的乱码模式进行比较,确定利用该编码格式读取所述目标文 档时产生的乱码;
统计利用每种编码格式读取所述目标文档时产生的乱码,并进行 比较,然后确定读取所述目标文档的编码格式。
所述参考编码格式属于包含了全部或部分编码格式的编码格式 集,且所述参考编码格式是该编码格式集中读取所述参考文档时会产 生乱码的编码格式。
通过所有的参考编码格式读取参考文档,确定利用所述参考编码 格式读取参考文档时得到的全部或部分乱码模式。
所述确定利用所述参考编码格式读取参考文档时得到的全部或 部分乱码模式的过程如下:
对于使用参考编码格式读取参考文档时获得的乱码字符串,删除 乱码字符串中的非有效判断字符,获取有效判断字符;统计有效判断 字符中乱码字符的出现次数,获取乱码模式。
所述非有效判断字符指英文字母、数字和空白字符;所述有效判 断字符指除所述非有效判断字符以外的所有字符。
统计有效判断字符中乱码字符的出现次数,获取乱码模式时,预 先设定次数的阈值,对于出现次数大于所述阈值的所有乱码字符,保 存为乱码模式。
统计有效判断字符中乱码字符的出现次数,获取乱码模式时,按 乱码字符出现次数倒序排列乱码字符;取得排列在前的部分乱码字符, 并将所取的乱码字符保存为乱码模式。
取得排列在前k%的乱码字符,并将所取的乱码字符保存为乱码 模式,其中k为正数,50≤k≤100。
所述每次利用一种编码格式读取目标文档时读取部分内容,直到 获得预先设置的有效判断字符数为止;若读取所述文档的所有内容后 仍未获得预先设置的有效判断字符数,则按实际获取的有效判断字符 数为准。
有效判断字符数为50-1000。
将该编码格式读取所述目标文档时产生的数据与确定的乱码模 式进行比较,确定利用该编码格式读取所述目标文档时产生的乱码的 过程为:
将通过每个编码格式读取所述目标文档时产生的数据逐个与所 述乱码模式中的乱码字符逐个比较,如果乱码字符包含此数据,则判 定此数据为乱码,否则,则不认为该数据为乱码。
统计利用每种编码格式读取所述目标文档时产生的乱码,并进行 比较,然后确定读取所述目标文档的编码格式的过程为:
统计利用每种编码格式读取所述目标文档时产生的乱码比例,选 择乱码比例最低的编码格式作为读取所述目标文档的编码格式。
统计利用每种编码格式读取所述目标文档时产生的乱码,并进行 比较,然后确定读取所述目标文档的编码格式的过程为:
统计利用每种编码格式读取所述目标文档时产生的乱码比例,选 择乱码比例低于预设阈值的编码格式作为读取所述目标文档的编码 格式。
所述乱码比例为所述乱码字符占有效判断字符的比例。
在每次利用一种编码格式读取目标文档时,所述编码格式属于所 述编码格式集。
一种选择读取目标文档的编码格式的系统,包括:
乱码模式生成模块,用于通过至少一个参考编码格式读取参考文 档,确定利用所述参考编码格式读取参考文档时得到的全部或部分乱 码模式;
目标文档读取模块,用于每次利用一种编码格式读取目标文档;
读取乱码模块,用于对于每种编码格式,将该编码格式读取所述 目标文档时产生的数据与确定的乱码模式进行比较,确定利用该编码 格式读取所述目标文档时产生的乱码;
读取编码格式选择模块,用于统计利用每种编码格式读取所述目 标文档时产生的乱码,并进行比较,然后确定读取所述目标文档的编 码格式。
所述参考编码格式属于包含了全部或部分编码格式的编码格式 集,且所述参考编码格式是该编码格式集中读取所述参考文档时会产 生乱码的编码格式。
通过所有的参考编码格式读取参考文档,确定利用所述参考编码 格式读取参考文档时得到的全部或部分乱码模式。
所述确定利用所述参考编码格式读取参考文档时得到的全部或 部分乱码模式的过程如下:
对于使用参考编码格式读取参考文档时获得的乱码字符串,删除 乱码字符串中的非有效判断字符,获取有效判断字符;统计有效判断 字符中乱码字符的出现次数,获取乱码模式。
所述非有效判断字符指英文字母、数字和空白字符;所述有效判 断字符指除所述非有效判断字符以外的所有字符。
统计有效判断字符中乱码字符的出现次数,获取乱码模式时,预 先设定次数的阈值,对于出现次数大于所述阈值的所有乱码字符,保 存为乱码模式。
统计有效判断字符中乱码字符的出现次数,获取乱码模式时,按 乱码字符出现次数倒序排列乱码字符;取得排列在前的部分乱码字符, 并将所取的乱码字符保存为乱码模式。
取得排列在前k%的乱码字符,并将所取的乱码字符保存为乱码 模式,其中k为正数,50≤k≤100。
所述每次利用一种编码格式读取目标文档时读取部分内容,直到 获得预先设置的有效判断字符数为止;若读取所述文档的所有内容后 仍未获得预先设置的有效判断字符数,则按实际获取的有效判断字符 数为准。
有效判断字符数为50-1000。
将该编码格式读取所述目标文档时产生的数据与确定的乱码模 式进行比较,确定利用该编码格式读取所述目标文档时产生的乱码的 过程为:
将通过每个编码格式读取所述目标文档时产生的数据逐个与所 述乱码模式中的乱码字符逐个比较,如果乱码字符包含此数据,则判 定此数据为乱码,否则,则不认为该数据为乱码。
统计利用每种编码格式读取所述目标文档时产生的乱码,并进行 比较,然后确定读取所述目标文档的编码格式的过程为:
统计利用每种编码格式读取所述目标文档时产生的乱码比例,选 择乱码比例最低的编码格式作为读取所述目标文档的编码格式。
统计利用每种编码格式读取所述目标文档时产生的乱码,并进行 比较,然后确定读取所述目标文档的编码格式的过程为:
统计利用每种编码格式读取所述目标文档时产生的乱码比例,选 择乱码比例低于预设阈值的编码格式作为读取所述目标文档的编码 格式。
所述乱码比例为所述乱码字符占有效判断字符的比例。
在每次利用一种编码格式读取目标文档时,所述编码格式属于所 述编码格式集。
本发明的上述技术方案相比现有技术具有以下优点:
(1)本发明所述的选择读取目标文档的编码格式的方法及其系 统,首先通过参考编码格式读取参考文档获得乱码模式,然后在对目 标文档读取时,对于每种编码格式,将该编码格式读取所述目标文档 时产生的数据与确定的乱码模式进行比较,确定利用该编码格式读取 所述目标文档时产生的乱码;再统计利用每种编码格式读取所述目标 文档时产生的乱码,将乱码比例最小的或乱码比例低于预设阈值的编 码格式确定为读取所述目标文档的编码格式。有效避免了现有技术中 只是读出所述目标文档的前几个字节,判定这些字节的值,从而得知 其编码的格式,但是,有时候,目标文档的前几个字节并没有保留该 文档的编码格式信息,无法获得该文档的编码格式的问题。
(2)本发明所述的选择读取目标文档的编码格式的方法,所述 获取乱码模式的过程中,对于使用参考编码格式读取参考文档时获得 的乱码字符串,删除了乱码字符串中的非有效判断字符,使处理的字 符数更少,进一步提高了处理速度,同也提高了获取乱码的准确率。
(3)本发明所述的选择读取目标文档的编码格式的方法,按一 定的比例取乱码字符出现次数较高的乱码字符作为乱码模式,过滤了 一些非常见的乱码字符,提高了后续选择读取目标文档的编码格式的 效率。
(4)本发明所述的选择读取目标文档的编码格式的方法,是依 据乱码比例最小的方法选择读取目标文档的编码格式,构思巧妙,方 法简单,易于实现。
(5)本发明所述的选择读取目标文档的编码格式的方法,根据 乱码比例小于预设阈值时就将该编码格式作为读取文档的编码格式, 避免了利用所有的编码格式进行读取目标文档后才选择时需要较长 的处理时间,进一步提高了选择读取目标文档的编码的效率。
(6)本发明所述的选择读取目标文档的编码格式的方法,每次 利用一种编码格式读取目标文档时读取部分内容,获得预先设置的有 效判断字符数为止,使选取的所述有效判断字符既不失代表性又进一 步提高了选择读取目标文档的编码的效率。
(7)本发明所述的选择读取目标文档的编码格式的系统,利用 本发明的选择读取目标文档的编码格式的方法,有效避免了现有技术 中只是读出所述目标文档的前几个字节,判定这些字节的值,从而得 知其编码的格式,但是,有时候,目标文档的前几个字节并没有保留 该文档的编码格式信息,无法获得该文档的编码格式的问题。
附图说明
为了使本发明的内容更容易被清楚的理解,下面结合附图,对 本发明作进一步详细的说明,其中,
图1是本发明所述选择读取目标文档的编码格式的方法的流程 图。
具体实施方式
实施例一
本实施例提供一种选择读取目标文档的编码格式的方法,其流 程图如图1所示,步骤包括:
第一、通过至少一个参考编码格式读取参考文档,确定利用所述 参考编码格式读取参考文档时得到的全部或部分乱码模式。本实施例 中所述文档为文本文档。所述参考编码格式属于包含了全部编码格式 的编码格式集。
所述确定利用所述参考编码格式读取参考文档时得到的全部或 部分乱码模式的过程如下:对于使用参考编码格式读取参考文档时获 得的乱码字符串,删除乱码字符串中的非有效判断字符,获取有效判 断字符;统计有效判断字符中乱码字符的出现次数,获取乱码模式。 其中,所述非有效判断字符指英文字母、数字和空白字符;所述有效 判断字符指除所述非有效判断字符以外的所有字符。
本实施例所述获取乱码模式的过程中,对于使用参考编码格式读 取参考文档时获得的乱码字符串,删除了乱码字符串中的非有效判断 字符,使处理的字符数更少,进一步提高了处理速度,同也提高了获 取乱码的准确率。
优选地,统计有效判断字符中乱码字符的出现次数,获取乱码模 式时,预先设定次数的阈值,对于出现次数大于所述阈值的所有乱码 字符,保存为乱码模式。
本实施例按一定的比例取乱码字符出现次数较高的乱码字符作 为乱码模式,过滤了一些非常见的乱码字符,提高了后续选择读取目 标文档的编码格式的效率。
优选地,统计有效判断字符中乱码字符的出现次数,获取乱码模 式时,按乱码字符出现次数倒序排列乱码字符;取得排列在前的部分 乱码字符,并将所取的乱码字符保存为乱码模式。取得排列在前k% 的乱码字符,并将所取的乱码字符保存为乱码模式,其中k为正数, 50≤k≤100。在本实施例中,在本实施例中,取得前80%的乱码字符, 这些乱码字符就是需要获取的乱码模式。
作为可替换的实施例,取得前k%的乱码字符,并将所取的乱码 字符保存为乱码模式。其中k为正数,所述k的取值范围为60≤k≤ 90。所述k可以选择60、70、75、90等不同的值,根据用户的需求 选择不同的值。
第二、每次利用一种编码格式读取目标文档时读取部分内容,直 到获得预先设置的有效判断字符数为止。所述编码格式属于所述编码 格式集,也就是说属于之前的参考编码格式所属的编码格式集。这样 参考编码格式和选择读取目标文档的编码格式属于相同的集合,对于 已经建立过乱码模式的编码格式,再次进行选择读取时,乱码模式对 产生的乱码的识别率高。若读取该目标文档的所有内容后仍未获得预 先设置的有效判断字符数,则按实际获取的有效判断字符数为准。所 述有效判断字符数为50-1000。优选地,所述有效判断字符数取100。 在其他实施例中所述有效判断字符数可以取70、150、200、300、500、 700、1000等不同的值,根据用户的需求来选择不同的值。
本实施例所述的选择读取目标文档的编码格式的方法,在读取目 标文档时只读取所述目标文档的部分内容,获得预先设置的有效判断 字符数为止,使选取的所述有效判断字符既不失代表性又进一步提高 了选择读取目标文档的编码的效率。
第三、对于每种编码格式,将该编码格式读取所述目标文档时产 生的数据与确定的乱码模式进行比较,确定利用该编码格式读取所述 目标文档时产生的乱码。
具体过程为:将通过每个编码格式读取所述目标文档时产生的数 据逐个与所述乱码模式中的乱码字符比较,如果乱码字符包含此数据, 则判定此数据为乱码,否则,则不认为该数据为乱码。
第四、统计利用每种编码格式读取所述目标文档时产生的乱码, 并进行比较,然后确定读取所述目标文档的编码格式。
具体过程为:统计利用每种编码格式读取所述目标文档时产生的 乱码比例,选择乱码比例最低的编码格式作为读取所述目标文档的编 码格式。其中,所述乱码比例为所述乱码字符占所读取的有效判断字 符的比例。
本实施例所述的选择读取目标文档的编码格式的方法,是依据乱 码比例最小的方法选择读取目标文档的编码格式,构思巧妙,方法简 单,易于实现。
优选地,统计利用每种编码格式读取所述目标文档时产生的乱码 比例,选择乱码比例低于预设阈值的编码格式作为读取所述目标文档 的编码格式。
本实施例所述的选择读取目标文档的编码格式的方法,根据乱码 比例小于预设阈值时就将该编码格式作为读取文档的编码格式,避免 了利用所有的编码格式进行读取目标文档后才选择时需要较长的处 理时间,进一步提高了选择读取目标文档的编码的效率。
本实施例所述的选择读取目标文档的编码格式的方法及其系统, 首先通过参考编码格式读取文档获得乱码模式,然后在对目标文档读 取时,对于每种编码格式,将该编码格式读取所述目标文档时产生的 数据与确定的乱码模式进行比较,确定利用该编码格式读取所述目标 文档时产生的乱码;再统计利用每种编码格式读取所述目标文档时产 生的乱码,将乱码比例最小的或乱码比例低于预设阈值的编码格式确 定为读取所述目标文档的编码格式。有效避免了现有技术中只是读出 所述目标文档的前几个字节,判定这些字节的值,从而得知其编码的 格式,但是,有时候,目标文档的前几个字节并没有保留该文档的编 码格式信息,无法获得该文档的编码格式的问题。
实施例二
第一、收集500个参考文档。通过至少一个参考编码格式读取参 考文档,确定利用所述参考编码格式读取参考文档时得到的全部或部 分乱码模式。
取上述参考文档中的一个文档使用UTF-8编码格式读取该文档, 例如原文本“中秋节,我们公司给我发了一千五百元过节费,大家都 很happy!”,文本文档的编码格式为UTF-8,使用GB2312编码读取, 得到“锘夸腑绉锛浠哥浜惧杩璐癸澶 у藉锛”,删除非有效判断字符“yhappy”,剩余的字符都 为有效判定字符,“锘夸腑绉锛浠哥浜惧杩璐癸澶藉锛”,再判断是否是乱码,进行计算。
取上述参考文档中的一个文档使用GB2312编码格式读取该文档, 例如原文本“我的体重很重,75千克,我老婆的体重很轻,才38千 克。”,文本文档的编码格式为GB2312,使用UTF-8编码读取,得到 删 除非有效判断字符“7538”,剩余的字符都为有效判定字符, 再判断 是否是乱码,进行计算。
对500个参考文档逐个分别使用UTF-8和GB2312编码格式读取, 统计有效判断字符中乱码字符的出现次数,取得前80%的乱码字符为 “锛涓銆紝鐨殑屽浜鏈”,将这些乱码字符保存为乱码模式。
第二、取编码格式UTF-8,使用编码格式UTF-8读取目标文档的 部分内容,当读取到第112个字符时,共获取100个有效判断字符。 然后再使用编码格式GB2312读取所述目标文档,获取100个有效判 断字符。
第三、分别对于编码格式UTF-8和编码格式GB2312,将该编码 格式读取所述目标文档时产生的数据与确定的乱码模式中的乱码字 符进行比较,确定利用该编码格式读取所述目标文档时产生的乱码字 符。
第四、使用编码格式UTF-8读取目标文档获取的数据,根据乱码 模式统计100个有效判定字符中乱码字符的个数为86,计算得到乱 码字符的比例86%。使用编码格式GB2312读取目标文档获取的数据, 计算得到乱码字符的比例0%。则将乱码比例最小的编码格式GB2312 作为读取所述目标文档的编码格式。
实施例三
本实施例提供一种选择中文文本文档读取编码格式方法,包含两 个阶段,第一个阶段是通过统计得到乱码模式的过程,第二个阶段是 选择目标文档的读取编码格式的过程。
本实施例中,非有效判断字符指英文字母(包含大小写)、数字 和空白字符(包括空格、制表符、换行符等);有效判断字符指非英 文字母(包含大小写)、数字和空白字符(包括空格、制表符、换行 符等)。本实施例从编码格式集中选择一种文件编码格式作为参考编 码格式,编码格式集C={c1,c2,…,ck},其中ci是一种中文文本文档的 编码格式,作为参考编码格式去读取参考文档。
第一个阶段,通过统计得到乱码模式的过程。
第一步,收集中文训练语料,将中文训练语料库D={d1,d2,…,dn} 作为参考文档集,其中di是一个中文文本文档,即本实施例中的一个 参考文档。文件di的编码格式表示为f(di),f(di)∈C。读取文件di时 会产出乱码的编码格式作为参考编码格式,所述参考编码格式的集合 表示为Ci',可知,即当使用Ci'中的编码格式读取文件di时 会产生乱码。
第二步,取得一个参考文档di,分别使用Ci'中的不同参考编码格 式读取文件,得到多个乱码字符串。
第三步,删除乱码字符串中的非有效判断字符。
第四步,统计乱码字符串中各乱码字符出现的次数。
第五步,对于每一个参考文档di∈D,重复第二到第四步,统计 各乱码字符出现次数。
第六步,按乱码字符出现次数倒序排列乱码字符。
第七步,取得前m%的乱码字符,这些乱码字符就是需要获取的 乱码模式,该乱码模式包含了编码格式集C={c1,c2,…,ck}下的常见乱 码特征。m的取值大于等于50且小于100,所述m取值在60和90之 间。
第二个阶段,选择目标文档的读取编码格式的过程。此处的目标 文档也为中文文本文档。本阶段有两种实现方式。实现方式一如下:
第一步,从编码格式集C中取得一种编码格式ci,使用编码格式 ci读取目标文档的部分内容,获得前n个有效判断字符。若完成整个 文件的读取时,获取的有效判断字符数仍小于n,则以实际获取的字 符数为准。假设该阶段最终获得了m个有效判断字符。n的取值大于 等于10,取值区间[50,1000]。
第二步,根据乱码模式统计m个有效判定字符中乱码字符的个数 m’,计算得到乱码比例m’/m。将编码格式ci及乱码比例m’/m加入 列表L。统计乱码字符的一种方法为:m’置零,依次读取m个字符 中的每一个字符,如果该字符属于乱码模式,则m’加一;当遍历m 个字符后,m’中保存的值就是乱码字符数。
第三步,对于编码格式集C中的其他编码格式,重复第一步到第 二步。
第四步,返回列表L中选择乱码比例最小的编码格式作为读取目 标文档的编码格式。
作为可以替换的另外一种实施方式,第二个阶段也可如下进行:
第一步,从编码格式集C中取得一种编码格式ci,使用编码格式 ci读取目标文档的部分内容,获取前n个有效判断字符。若完成整个 文件的读取时,获取的有效判断字符数仍小于n,则以实际获取的字 符数为准。假设该阶段最终获得了m个有效判断字符。n的取值大于 等于10,取值区间为[50,1000]。
第二步,根据乱码模式统计m个有效判定字符中乱码字符的个数 m’,计算得到乱码字符的比例m’/m。统计乱码字符的一种方法为: m’置零,依次读取m个字符中的每一个字符,如果该字符属于乱码 模式,则m’加一;当遍历m个字符后,m’中保存的值就是乱码字 符数。
第三步,如果乱码比例m’/m大于等于阈值ξ,则重复第一步和 第二步。如果乱码比例小于阈值ξ,则返回编码格式ci。阈值ξ取值 大于等于1%,阈值ξ取值在5%到50%之间,本实施例中取15%。
本实施例是通过统计得到乱码模式,根据乱码模式自动选择目标 文档(为中文文本文档)的读取编码格式。
实施例四
本实施例提供一种选择读取目标文档的编码格式的方法,包括第 一阶段和第二阶段,具体如下:
第一个阶段,通过统计得到乱码模式。关注的编码集合是{UTF-8, GB2312}。
第一步,收集1000个中文文本文档作为参考文档,将其作为中 文训练语料,其中500个文件是UTF-8编码,另500个文件是GB2312 编码。本实施例中所述文本文档指后缀为.txt的格式的文本文档。
第二步,从中取得一个UTF-8编码的文件,使用GB2312编码读 取文档,得到乱码字符串。
第三步,删除乱码字符串中的非有效判断字符。
第四步,统计乱码字符串中各乱码字符出现的次数。
第五步,对于每一个参考文档,重复第二到第四步,统计各乱码 字符出现次数。
第六步,按乱码字符出现次数倒序排列乱码字符。
第七步,取得前80%的乱码字符,这些乱码字符就是需要获取的 乱码模式,该乱码模式包含了关注的编码集合{UTF-8,GB2312}下的 常见乱码特征。得到的乱码模式为[锛涓銆紝鐨殑浜鏈鍏]。
第二个阶段,选择目标文档的读取编码。
第一步,从关注的编码集合{UTF-8,GB2312}中取得一种编码 UTF-8,使用编码UTF-8读取目标文档的前100个有效判断字符。
第二步,根据乱码模式统计100个有效判定字符中乱码字符的个 数为86,计算得到乱码字符的比例86%。在列表L中加入条目(UTF-8, 86%)。
第三步,对于编码GB2312,重复第一步和第二步。在列表L中 加入条目(GB2312,0%)
第四步,返回列表L中选择乱码比例最小的编码,即GB2312作 为读取目标文档的编码格式。可以看出,通过编码GB2312来读取目 标文档最可能正确地读取该文档的内容。
作为可替换的实施方式,第二个阶段还可以通过以下方式来实现, 具体包括:
第一步,从关注的编码集合{UTF-8,GB2312}中取得一种编码 UTF-8,使用编码UTF-8读取目标文档的前100个有效判断字符。
第二步,根据乱码模式统计100个有效判定字符中乱码字符的个 数为86,计算得到乱码字符的比例86%。
第三步,阈值ξ设置为15%,因为乱码比例86%大于阈值ξ,所以 使用编码GB2312重复第一步和第二步。得到乱码字符的比例0%,小 于阈值ξ,则返回编码GB2312,将GB2312作为读取目标文档的编码 格式。
实施例五
本实施例提供一种选择读取目标文档的编码格式的系统,包括:
第一、乱码模式生成模块,用于通过至少一个参考编码格式读取 参考文档,确定利用所述参考编码格式读取参考文档时得到的全部或 部分乱码模式。所述参考编码格式属于包含了全部或部分编码格式的 编码格式集,且所述参考编码格式是该编码格式集中读取所述参考文 档时会产生乱码的编码格式。
所述确定利用所述参考编码格式读取参考文档时得到的全部或 部分乱码模式的过程如下:对于使用参考编码格式读取参考文档时获 得的乱码字符串,删除乱码字符串中的非有效判断字符,获取有效判 断字符;统计有效判断字符中乱码字符的出现次数,获取乱码模式。 其中,所述非有效判断字符指英文字母、数字和空白字符;所述有效 判断字符指除所述非有效判断字符以外的所有字符。
本实施例所述获取乱码模式的过程中,对于使用参考编码格式读 取参考文档时获得的乱码字符串,删除了乱码字符串中的非有效判断 字符,使处理的字符数更少,进一步提高了处理速度,同也提高了获 取乱码的准确率。
优选地,统计有效判断字符中乱码字符的出现次数,获取乱码模 式时,预先设定次数的阈值,对于出现次数大于所述阈值的所有乱码 字符,保存为乱码模式。
本实施例按一定的比例取乱码字符出现次数较高的乱码字符作 为乱码模式,过滤了一些非常见的乱码字符,为后续选择读取目标文 档的编码格式的准确性提供了很好的依据。
优选地,统计有效判断字符中乱码字符的出现次数,获取乱码模 式时,按乱码字符出现次数倒序排列乱码字符;取得排列在前的部分 乱码字符,并将所取的乱码字符保存为乱码模式。取得排列在前k% 的乱码字符,并将所取的乱码字符保存为乱码模式,其中k为正数, 50≤k≤100。在本实施例中,在本实施例中,取得前80%的乱码字符, 这些乱码字符就是需要获取的乱码模式。
在其他实施例中,取得前k%的乱码字符,并将所取的乱码字符 保存为乱码模式。其中k为正数,所述k的取值范围为60≤k≤90。 所述k可以选择60、70、75、90等不同的值,根据用户的需求选择 不同的值。
第二、目标文档读取模块,用于每次利用一种编码格式读取目标 文档。该模块以获得预先设置的有效判断字符数为止,所述编码格式 属于所述参考编码格式所属的所述编码格式集。若读取所有文档的所 有内容后仍未获得预先设置的有效判断字符数,则按实际获取的有效 判断字符数为准。所述有效判断字符数为50-1000。优选地,所述有 效判断字符数取100。在其他实施例中所述有效判断字符数可以取70、 150、200、300、500、700、1000等不同的值,根据用户的需求来选 择不同的值。
第三、读取乱码模块,用于对于每种编码格式,将该编码格式读 取所述目标文档时产生的数据与确定的乱码模式进行比较,确定利用 该编码格式读取所述目标文档时产生的乱码。
具体过程为:将通过每个编码格式读取所述目标文档时产生的数 据逐个与所述乱码模式中的乱码字符比较,如果乱码字符包含此数据, 则判定此数据为乱码,否则,则不认为该数据为乱码。
优选地,对于使用编码格式读取目标文档时获得的乱码字符串, 删除乱码字符串中的非有效判断字符,获取有效判断字符;统计有效 判断字符中乱码字符的出现次数,获取乱码模式。
第四、读取编码格式选择模块,用于统计利用每种编码格式读取 所述目标文档时产生的乱码,并进行比较,然后确定读取所述目标文 档的编码格式。
具体过程为:统计利用每种编码格式读取所述目标文档时产生的 乱码比例,选择乱码比例最低的编码格式作为读取所述目标文档的编 码格式。
优选地,统计利用每种编码格式读取所述目标文档时产生的乱码 比例,选择乱码比例低于预设阈值的编码格式作为读取所述目标文档 的编码格式。其中所述乱码比例为所述乱码字符占所读取的有效判断 字符的比例。
本实施例所述的选择读取目标文档的编码格式的系统,利用本发 明的选择读取目标文档的编码格式的方法,有效避免了现有技术中只 是读出所述目标文档的前几个字节,判定这些字节的值,从而得知其 编码的格式,但是,有时候,目标文档的前几个字节并没有保留该文 档的编码格式信息,无法获得该文档的编码格式的问题。
显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实 施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基 础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有 的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处 于本发明创造的保护范围之中。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系 统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全 软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明 可采用在一个或多个其中包含有计算机可用程序代码的计算机可用 存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实 施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算 机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序 指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图 和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指 令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理 设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处 理设备的处理器执行的指令产生用于实现在流程图一个流程或多个 流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数 据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计 算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实 现在流程图一个流程或多个流程和/或方框图一个方框或多个方框 中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理 设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产 生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令 提供用于实现在流程图一个流程或多个流程和/或方框图一个方框 或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦 得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。 所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围 的所有变更和修改。

一种选择读取目标文档的编码格式的方法及其系统.pdf_第1页
第1页 / 共16页
一种选择读取目标文档的编码格式的方法及其系统.pdf_第2页
第2页 / 共16页
一种选择读取目标文档的编码格式的方法及其系统.pdf_第3页
第3页 / 共16页
点击查看更多>>
资源描述

《一种选择读取目标文档的编码格式的方法及其系统.pdf》由会员分享,可在线阅读,更多相关《一种选择读取目标文档的编码格式的方法及其系统.pdf(16页珍藏版)》请在专利查询网上搜索。

本发明提供一种选择读取目标文档的编码格式的方法及其系统,首先通过参考编码格式读取参考文档获得乱码模式,然后在对目标文档读取时,对于每种编码格式,将该编码格式读取所述目标文档时产生的数据与确定的乱码模式进行比较,确定利用该编码格式读取所述目标文档时产生的乱码;再统计利用每种编码格式读取所述目标文档时产生的乱码,并进行比较,然后确定读取所述目标文档的编码格式。上述技术方案有效避免了现有技术中只是读出所。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1