[发明专利]UTF-8编码与GB2312编码识别方法及装置在审
申请号: | 202211024171.9 | 申请日: | 2022-08-24 |
公开(公告)号: | CN115373686A | 公开(公告)日: | 2022-11-22 |
发明(设计)人: | 曹红光 | 申请(专利权)人: | 北京中科网威信息技术有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F8/34 |
代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 张文玄 |
地址: | 100094 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | utf 编码 gb2312 识别 方法 装置 | ||
本发明提供一种UTF‑8编码与GB2312编码识别方法及装置,涉及字符编码技术领域,所述方法包括:确定待识别字符串的长度,和待识别字符串中包括的最高位为0的字节数;在确定最高位为0的字节数与长度相等的情况下,确定待识别字符串的编码方式为UTF‑8编码;在确定最高位为0的字节数小于长度的情况下,判断最高位为0的字节数和/或长度是否满足第一预设条件;在确定最高位为0的字节数和/或长度满足第一预设条件的情况下,确定待识别字符串的编码方式为GB2312编码。本发明能够快速并准确地识别出简体中文字符的编码方式是UTF‑8编码还是GB2312编码,避免字符显示乱码,提升用户体验。
技术领域
本发明涉及字符编码技术领域,尤其涉及一种UTF-8编码与GB2312编码识别方法及装置。
背景技术
支持中文的软件通常至少支持两种编码的显示方式,分别是GB2312编码(也称为ANSI编码或者本地编码)和UTF-8编码(国际通用编码)。标准的UTF-8编码方式的识别方法无法判断与UTF-8编码值域重合的GB2312编码的字符,该方法会把这部分GB2312编码的字符确定为UTF-8编码进行处理或者显示、或者再将其转换成其他编码进行显示,此时会导致转换错误或者显示为乱码。
因此,如何准确识别UTF-8编码值与GB2312编码值重合部分字符的编码方式,成为业界亟需解决的问题。
发明内容
针对现有技术存在的问题,本发明提供一种UTF-8编码与GB2312编码识别方法及装置。
第一方面,本发明提供一种UTF-8编码与GB2312编码识别方法,包括:
确定待识别字符串的长度,和所述待识别字符串中包括的最高位为0的字节数;
在确定所述字节数与所述长度相等的情况下,确定所述待识别字符串的编码方式为UTF-8编码;
在确定所述字节数小于所述长度的情况下,判断所述字节数和/或所述长度是否满足第一预设条件;
在确定所述字节数和/或所述长度满足所述第一预设条件的情况下,确定所述待识别字符串的编码方式为GB2312编码;
其中,所述第一预设条件包括以下任意一项:
所述长度小于3;
所述长度大于或等于3,且所述长度与所述字节数的差值不是3的整数倍。
可选地,根据本发明提供的一种UTF-8编码与GB2312编码识别方法,所述方法还包括:
在确定所述字节数和/或所述长度不满足所述第一预设条件的情况下,遍历所述待识别字符串,确定当前遍历到的所述待识别字符串中的目标字节,和所述目标字节对应的索引值;
在确定所述目标字节的最高位为1,且所述长度与所述索引值的差值小于或等于2的情况下,确定所述待识别字符串的编码方式为GB2312编码。
可选地,根据本发明提供的一种UTF-8编码与GB2312编码识别方法,在确定当前遍历到的所述待识别字符串中的目标字节之后,所述方法还包括:
判断所述目标字节的编码值是否满足第二预设条件;
在确定所述目标字节的编码值满足所述第二预设条件的情况下,确定所述待识别字符串的编码方式为GB2312编码;
其中,所述第二预设条件包括以下任意一项:
所述目标字节的编码值小于0xE0;
所述目标字节的编码值大于或等于0xF0。
可选地,根据本发明提供的一种UTF-8编码与GB2312编码识别方法,在确定当前遍历到的所述待识别字符串中的目标字节之后,所述方法还包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京中科网威信息技术有限公司,未经北京中科网威信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211024171.9/2.html,转载请声明来源钻瓜专利网。