自动识别文件编码的方法及计算机可读存储介质技术

技术编号:29133005 阅读:17 留言:0更新日期:2021-07-02 22:28
本发明专利技术公开了一种自动识别文件编码识别方法及计算机可读存储介质,方法包括:采集样本文件;分别将样本文件的文件编码转换为预设的各编码,生成各编码对应的正向字词库;分别将样本文件通过与其文件编码不同的其他编码进行解码,得到乱码文件并记录编码转化方向;根据乱码文件,生成其编码转化方向对应的反向字词库;获取待识别文件;依次通过一编码对待识别文件进行解码;获取解码后的待识别文件中的词语和单字,并分别将词语和单字在对应的正向字词库以及反向字词库中进行匹配,得到正向匹配数和反向匹配数;若正向匹配数大于反向匹配数,则将一编码作为待识别文件的文件编码。本发明专利技术可正确识别出文件编码。

【技术实现步骤摘要】
自动识别文件编码的方法及计算机可读存储介质本案是以申请日为2019年04月19日,申请号为201910317628.7,名称为“文件编码的识别方法及计算机可读存储介质”的专利技术专利为母案而进行的分案申请。
本专利技术涉及编码识别
,尤其涉及一种文件编码的识别方法及计算机可读存储介质。
技术介绍
目前存在着多种编码方式,因此,要想打开一个文本文件,就必须知道它的编码方式,否则用错误的编码方式解读,就会出现乱码。现有技术中对文件编码的判断,只能根据文件的前3个字节判断是否是UTF-8(8-bitUnicodeTransformationFormat,一种针对Unicode的可变长度字符编码,又称万国码)的文件编码,而其他文件编码则没有任何明显的特征可判断,只能让用户自己选择查看文件的编码,如果用户选择的编码不正确则会出现乱码。
技术实现思路
本专利技术所要解决的技术问题是:提供一种文件编码的识别方法及计算机可读存储介质,可正确识别出文件编码,防止出现乱码。为了解决上述技术问题,本专利技术采用的技术方案为:一种文件编码的识别方法,包括:采集样本文件,所述样本文件包括各种语言的非乱码文本;分别将所述样本文件的文件编码转换为预设的编码集合中的各编码,并根据转换后的样本文件,生成各编码对应的正向字词库;分别将所述样本文件通过所述编码集合中与其文件编码不同的其他编码进行解码,得到乱码文件,并记录所述乱码文件的编码转化方向,所述编码转化方向包括文件编码和解码编码;根据所述乱码文件,生成其编码转化方向对应的反向字词库;获取待识别文件;依次通过所述编码集合中的一编码对所述待识别文件进行解码;获取解码后的待识别文件中的词语和单字,并分别将所述词语和单字在所述一编码对应的正向字词库以及第一编码转化方向对应的反向字词库中进行匹配,得到正向匹配数和反向匹配数,所述第一编码转化方向中的解码编码为所述一编码;若所述正向匹配数大于所述反向匹配数,则将所述一编码作为所述待识别文件的文件编码。本专利技术还涉及一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如上所述的步骤。本专利技术的有益效果在于:通过对采集的样本文件进行分析处理,生成正向字词库和反向字词库,后续根据待识别文件与正向字词库和反向字词库的匹配结果,得到待识别文件的文件编码。本专利技术可对编码方式未知的文件进行正确的编码识别,有效地避免出现乱码。附图说明图1为本专利技术的一种文件编码的识别方法的流程图;图2为本专利技术实施例一的方法流程图一;图3为本专利技术实施例一的方法流程图二。具体实施方式为详细说明本专利技术的
技术实现思路
、所实现目的及效果,以下结合实施方式并配合附图详予说明。本专利技术最关键的构思在于:通过对采集的样本文件进行分析处理,生成正向字词库和反向字词库,后续根据待识别文件与正向字词库和反向字词库的匹配结果,得到待识别文件的文件编码。请参阅图1,一种文件编码的识别方法,包括:采集样本文件,所述样本文件包括各种语言的非乱码文本;分别将所述样本文件的文件编码转换为预设的编码集合中的各编码,并根据转换后的样本文件,生成各编码对应的正向字词库;分别将所述样本文件通过所述编码集合中与其文件编码不同的其他编码进行解码,得到乱码文件,并记录所述乱码文件的编码转化方向,所述编码转化方向包括文件编码和解码编码;根据所述乱码文件,生成其编码转化方向对应的反向字词库;获取待识别文件;依次通过所述编码集合中的一编码对所述待识别文件进行解码;获取解码后的待识别文件中的词语和单字,并分别将所述词语和单字在所述一编码对应的正向字词库以及第一编码转化方向对应的反向字词库中进行匹配,得到正向匹配数和反向匹配数,所述第一编码转化方向中的解码编码为所述一编码;若所述正向匹配数大于所述反向匹配数,则将所述一编码作为所述待识别文件的文件编码。从上述描述可知,本专利技术的有益效果在于:可正确识别出文件编码,防止出现乱码。进一步地,所述采集样本文件之后,进一步包括:将所述样本文件中的第一字符替换为空格,所述第一字符为ASCII码表示的字母和符号。进一步地,所述通过所述编码集合中的一编码对所述待识别文件进行解码之后,进一步包括:剔除解码后的待识别文件中的第一字符。由上述描述可知,由于ASCII码的通用性最高,可能会影响后续的匹配数,因此通过剔除ASCII码表示的字母和符号,可提高识别准确率。进一步地,所述分别将所述样本文件的文件编码转换为预设的编码集合中的各编码,并根据转换后的样本文件,生成各编码对应的正向字词库具体为:将所述样本文件的文件编码转换为预设的编码集合中的一编码;获取转换后的样本文件中所有的单字,生成所述一编码对应的正向字库;获取转换后的样本文件中所有的连续且非空格的两个字符,生成所述一编码对应的正向词库。由上述描述可知,一编码对应的正向字词库中即存储了各字符或字符组合在该编码下的显示格式。进一步地,所述根据所述乱码文件,生成其编码转化方向对应的反向字词库具体为:获取一乱码文件中所有的单字,生成所述一乱码文件的编码转化方向对应的反向字库;获取一乱码文件中所有连续且非空格的两个字符,生成所述一乱码文件的编码转化方向对应的反向词库。由上述描述可知,一编码转化方向对应的反向字词库中即存储了各字符或字符组合在该编码转化方向下的显示格式。进一步地,所述正向字词库包括正向字库和正向词库,所述反向字词库包括反向字库和反向词库;所述依次通过所述编码集合中的一编码对所述待识别文件进行解码的步骤至所述若所述正向匹配数大于所述反向匹配数则将所述一编码作为所述待识别文件的文件编码的步骤具体为:获取所述编码集合中的一编码,并通过所述一编码对所述待识别文件进行解码;获取解码后的待识别文件中的词语,所述词语为连续且非空格的两个字符;将所述词语与所述一编码对应的正向词库进行匹配,得到第一正向匹配数;将所述词语分别与第一编码转化方向对应的各反向词库进行匹配,得到所述各反向词库的第一反向匹配数,所述第一编码转化方向中的解码编码为所述一编码;将所述各反向词库的第一反向匹配数相加,得到第二反向匹配数;若所述第一正向匹配数大于所述第二反向匹配数,则将所述一编码作为待识别文件的文件编码;若所述第一正向匹配数小于所述第二反向匹配数,则获取第一反向匹配数最大的反向词库对应的编码转化方向中的文件编码,并将所述文件编码作为一编码,继续执行所述通过所述一编码对所述待识别文件进行解码的步骤;若所述第一正向匹配数和第二反向匹配数相等且均不为零,则获取所述编码集合中的下一编码,并将所述下一编码作为一编码,继续执行所述通过所述一编码对所述待识别文件进行解码的步骤;本文档来自技高网
...

【技术保护点】
1.一种自动识别文件编码识别方法,其特征在于,包括:/n采集样本文件,所述样本文件包括各种语言的非乱码文本;/n分别将所述样本文件的文件编码转换为预设的编码集合中的各编码,并根据转换后的样本文件,生成各编码对应的正向字词库,所述正向字词库包括正向字库和正向词库;/n分别将所述样本文件通过所述编码集合中与其文件编码不同的其他编码进行解码,得到乱码文件,并记录所述乱码文件的编码转化方向,所述编码转化方向包括文件编码和解码编码;/n根据所述乱码文件,生成其编码转化方向对应的反向字词库,所述反向字词库包括反向字库和反向词库;/n获取待识别文件;/n依次通过所述编码集合中的一编码对所述待识别文件进行解码;/n获取解码后的待识别文件中的词语和单字,并分别将所述词语和单字在所述一编码对应的正向字词库以及第一编码转化方向对应的反向字词库中进行匹配,得到正向匹配数和反向匹配数,所述第一编码转化方向中的解码编码为所述一编码;/n若所述正向匹配数大于所述反向匹配数,则将所述一编码作为所述待识别文件的文件编码;/n所述根据所述乱码文件,生成其编码转化方向对应的反向字词库具体为:/n获取一乱码文件中所有的单字,生成所述一乱码文件的编码转化方向对应的反向字库;/n获取一乱码文件中所有连续且非空格的两个字符,生成所述一乱码文件的编码转化方向对应的反向词库;/n若一乱码文件存在超出其字符表示范围的字符,则将所述超出其字符表示范围的字符加入至所述一乱码文件的编码转化方向对应的反向字库;/n所述依次通过所述编码集合中的一编码对所述待识别文件进行解码的步骤至所述若所述正向匹配数大于所述反向匹配数则将所述一编码作为所述待识别文件的文件编码的步骤具体为:/n获取所述编码集合中的一编码,并通过所述一编码对所述待识别文件进行解码;/n获取解码后的待识别文件中的词语,所述词语为连续且非空格的两个字符;/n将所述词语与所述一编码对应的正向词库进行匹配,得到第一正向匹配数;/n将所述词语分别与第一编码转化方向对应的各反向词库进行匹配,得到所述各反向词库的第一反向匹配数,所述第一编码转化方向中的解码编码为所述一编码;/n将所述各反向词库的第一反向匹配数相加,得到第二反向匹配数;/n若所述第一正向匹配数大于所述第二反向匹配数,则将所述一编码作为待识别文件的文件编码;/n若所述第一正向匹配数小于所述第二反向匹配数,则获取第一反向匹配数最大的反向词库对应的编码转化方向中的文件编码,并将所述文件编码作为一编码,继续执行所述通过所述一编码对所述待识别文件进行解码的步骤;/n若所述第一正向匹配数和第二反向匹配数相等且均不为零,则获取所述编码集合中的下一编码,并将所述下一编码作为一编码,继续执行所述通过所述一编码对所述待识别文件进行解码的步骤;/n若所述第一正向匹配数和第二反向匹配数均为零,则获取解码后的待识别文件中的单字;/n将所述单字与所述一编码对应的正向字库进行匹配,得到第二正向匹配数;/n将所述单字分别与所述第一编码转化方向对应的反向字库进行匹配,得到所述各反向字库的第三反向匹配数;/n将所述各反向字库的第三反向匹配数相加,得到第四反向匹配数;/n若所述第二正向匹配数大于所述第四反向匹配数,则将所述一编码作为待识别文件的文件编码;/n若所述第二正向匹配数小于所述第四反向匹配数,则获取第三反向匹配数最大的反向字库对应的编码转化方向中的文件编码,并将所述文件编码作为一编码,继续执行所述通过所述一编码对所述待识别文件进行解码的步骤;/n若所述第二正向匹配数和第四反向匹配数相等,则获取所述编码集合中的下一编码,并将所述下一编码作为一编码,继续执行所述通过所述一编码对所述待识别文件进行解码的步骤。/n...

【技术特征摘要】
1.一种自动识别文件编码识别方法,其特征在于,包括:
采集样本文件,所述样本文件包括各种语言的非乱码文本;
分别将所述样本文件的文件编码转换为预设的编码集合中的各编码,并根据转换后的样本文件,生成各编码对应的正向字词库,所述正向字词库包括正向字库和正向词库;
分别将所述样本文件通过所述编码集合中与其文件编码不同的其他编码进行解码,得到乱码文件,并记录所述乱码文件的编码转化方向,所述编码转化方向包括文件编码和解码编码;
根据所述乱码文件,生成其编码转化方向对应的反向字词库,所述反向字词库包括反向字库和反向词库;
获取待识别文件;
依次通过所述编码集合中的一编码对所述待识别文件进行解码;
获取解码后的待识别文件中的词语和单字,并分别将所述词语和单字在所述一编码对应的正向字词库以及第一编码转化方向对应的反向字词库中进行匹配,得到正向匹配数和反向匹配数,所述第一编码转化方向中的解码编码为所述一编码;
若所述正向匹配数大于所述反向匹配数,则将所述一编码作为所述待识别文件的文件编码;
所述根据所述乱码文件,生成其编码转化方向对应的反向字词库具体为:
获取一乱码文件中所有的单字,生成所述一乱码文件的编码转化方向对应的反向字库;
获取一乱码文件中所有连续且非空格的两个字符,生成所述一乱码文件的编码转化方向对应的反向词库;
若一乱码文件存在超出其字符表示范围的字符,则将所述超出其字符表示范围的字符加入至所述一乱码文件的编码转化方向对应的反向字库;
所述依次通过所述编码集合中的一编码对所述待识别文件进行解码的步骤至所述若所述正向匹配数大于所述反向匹配数则将所述一编码作为所述待识别文件的文件编码的步骤具体为:
获取所述编码集合中的一编码,并通过所述一编码对所述待识别文件进行解码;
获取解码后的待识别文件中的词语,所述词语为连续且非空格的两个字符;
将所述词语与所述一编码对应的正向词库进行匹配,得到第一正向匹配数;
将所述词语分别与第一编码转化方向对应的各反向词库进行匹配,得到所述各反向词库的第一反向匹配数,所述第一编码转化方向中的解码编码为所述一编码;
将所述各反向词库的第一反向匹配数相加,得到第二反向匹配数;
若所述第一正向匹配数大于所述第二反向匹配数,则将所述一编码作为待识别文件的文件编码;
若所述第一正向匹配数小于所述第二反向匹配数,则获取第一反向匹配数最大...

【专利技术属性】
技术研发人员:刘德建陈丛亮郭玉湖
申请(专利权)人:福建天晴数码有限公司
类型:发明
国别省市:福建;35

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1