一种编码方式的切换方法及装置.pdf

上传人:1*** 文档编号:669227 上传时间:2018-03-02 格式:PDF 页数:14 大小:1.33MB
返回 下载 相关 举报
摘要
申请专利号:

CN201410322903.1

申请日:

2014.07.08

公开号:

CN104092514A

公开日:

2014.10.08

当前法律状态:

撤回

有效性:

无权

法律详情:

发明专利申请公布后的视为撤回IPC(主分类):H04L 1/00申请公布日:20141008|||实质审查的生效IPC(主分类):H04L 1/00申请日:20140708|||公开

IPC分类号:

H04L1/00

主分类号:

H04L1/00

申请人:

深圳市同洲电子股份有限公司

发明人:

张安龙

地址:

518057 广东省深圳市南山区高新科技园北区彩虹科技大厦

优先权:

专利代理机构:

广州三环专利代理有限公司 44202

代理人:

郝传鑫;熊永强

PDF下载: PDF下载
内容摘要

本发明公开了一种编码方式的切换方法,包括:根据当前编码方式将获取的字符数据流转换为字符编码串;判断转换后的所述字符编码串中是否存在字符乱码;若判断的结果为是,则将所述当前编码方式切换为其他编码方式,以使所述其他编码方式适用于所述获取的字符数据流。本发明还公开了一种装置。可通过切换不同的编码方式,满足获取的不同字符数据流对编码方式的需求,降低编码过程中出现乱码的概率,提升用户体验。

权利要求书

1.  一种编码方式的切换方法,其特征在于,包括:
根据当前编码方式将获取的字符数据流转换为字符编码串;
判断转换后的所述字符编码串中是否存在字符乱码;
若判断的结果为是,则将所述当前编码方式切换为其他编码方式,以使所述其他编码方式适用于所述获取的字符数据流。

2.
  如权利要求1所述方法,其特征在于,所述根据当前编码方式将获取的字符数据流转换为字符编码串,包括:
获取所述字符数据流;
记录获取所述字符数据流的时间或次数;
当所述记录的时间或次数超过预设的阈值时,根据所述当前编码方式将所述获取的字符数据流转换为所述字符编码串。

3.
  如权利要求1或2所述方法,其特征在于,在所述判断转换后的所述字符编码串中是否存在字符乱码之前,所述方法还包括:
在所述字符编码串中截取字符编码子串,其中,所述字符编码子串的长度为所述当前编码方式对应的编码长度;
在所述当前编码方式对应的字和/或词语数据库中,查询是否存在所述字符编码子串;
若查询的结果为否,则确定所述字符编码子串为所述字符乱码。

4.
  如权利要求3所述方法,其特征在于,在所述若查询的结果为否,则确定所述字符编码子串为所述字符乱码之后,所述方法还包括:
记录所述字符编码串中所述字符乱码的个数;
其中,所述判断转换后的所述字符编码串中是否存在字符乱码,包括:
判断所述记录的字符乱码的个数与所述字符编码子串总数的比值是否超过预设阈值。

5.
  如权利要求4所述方法,其特征在于,在所述若判断的结果为是,则将所述当前编码方式切换为其他编码方式,以使所述其他编码方式适用于所述获取的字符数据流之后,所述方法还包括:
若判断的结果为否,则设置所述当前编码方式为默认编码方式,以使在下次获取所述字符数据流时,根据所述默认编码方式转换所述字符数据流。

6.
  一种装置,其特征在于,包括:
转换模块,用于根据当前编码方式将获取的字符数据流转换为字符编码串;
判断模块,用于判断所述转换模块转换后的所述字符编码串中是否存在字符乱码;
切换模块,用于当所述判断模块判断的结果为是时,则将所述当前编码方式切换为其他编码方式。

7.
  如权利要求6所述装置,其特征在于,所述转换模块包括:
获取单元,用于获取所述字符数据流;
记录单元,用于记录所述获取单元获取所述字符数据流的时间或次数;
转换单元,用于当所述记录单元记录的时间或次数超过预设的阈值时,根据所述当前编码方式将所述获取的字符数据流转换为所述字符编码串。

8.
  如权利要求6或7所述装置,其特征在于,所述装置还包括:
截取模块,用于在所述判断模块判断转换后的所述字符编码串中是否存在字符乱码之前,在所述字符编码串中截取字符编码子串,其中,所述字符编码子串的长度为所述当前编码方式对应的编码长度;
查询模块,用于在所述当前编码方式对应的字和/或词语数据库中,查询是否存在所述截取模块截取的所述字符编码子串;
确定模块,用于当所述查询模块查询的结果为否时,确定所述字符编码子串为所述字符乱码。

9.
  如权利要求8所述装置,其特征在于,所述装置还包括:
记录模块,用于在所述确定模块确定所述字符编码子串为所述字符乱码之后,记录所述字符编码串中所述字符乱码的个数;
其中,所述判断模块还用于判断所述个数记录模块记录的字符乱码的个数与所述字符编码子串总数的比值是否超过预设阈值。

10.
  如权利要求4所述装置,其特征在于,所述装置还包括:
设置模块,用于当所述判断模块判断的结果为否时,设置所述当前编码方式为默认编码方式,以使在下次获取所述字符数据流时,根据所述默认编码方式转换所述字符数据流。

说明书

一种编码方式的切换方法及装置
技术领域
本发明涉及通信技术领域,尤其涉及一种编码方式的切换方法及装置。
背景技术
目前,可通过多种编码方式实现数据传输,通常客户端与服务端之间可协议数据字符串传输的编码方式,以使在数据进行传输后,客户端或服务端能够根据正确的编码方式进行解码。若客户端与服务端未协商好编码方式,或编码方式在协议层或其他层级中被去掉后,容易出现乱码现象,或字符串中包含非英文和数字字符时,默认的编码方式通常会无法解析非英文和数字字符,导致出现乱码,降低了用户体验。
发明内容
本发明实施例提供一种编码方式的切换方法。可通过切换不同的编码方式,满足获取的不同字符数据流对编码方式的需求,降低编码过程中出现乱码的概率,提升用户体验。
一方面,本发明的实施例提供了一种编码方式的切换方法,包括:
根据当前编码方式将获取的字符数据流转换为字符编码串;
判断转换后的所述字符编码串中是否存在字符乱码;
若判断的结果为是,则将所述当前编码方式切换为其他编码方式。
另一方面,本发明的实施例提供了一种装置,包括:
转换模块,用于根据当前编码方式将获取的字符数据流转换为字符编码串;
判断模块,用于判断所述转换模块转换后的所述字符编码串中是否存在字符乱码;
切换模块,用于当所述判断模块判断的结果为是时,则将所述当前编码方式切换为其他编码方式。
通过根据当前编码方式将获取的字符数据流转换为字符编码串,并且判断 转换后的字符编码串中是否存在字符乱码,可确定当前编码方式是否为适合字符数据流的编码方式,若判断出存在字符乱码,则可通过将当前编码方式切换为其他编码方式,以将编码方式调整为适合获取字符数据流的编码方式,满足le获取的不同字符数据流对编码方式的需求,降低编码过程中出现乱码的概率,提升用户体验。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明中的一种编码方式的切换方法的一种实施例的流程图;
图2是本发明中的一种编码方式的切换方法的另一种实施例的流程图;
图3是本发明中的一种装置的一种实施例的结构示意图;
图4是本发明中的一种装置的另一种实施例的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例中所提及装置及能够实现下述方法的装置可包括客户终端,如手机、平板电脑、机顶盒、智能电视;或服务端等能够进行数据编码的装置。以上所述装置均在本发明保护范围内。
下面参考附图对本发明的实施例进行描述。参见图1,为本发明中的一种编码方式的切换方法的一种实施例的流程图。
步骤S101,根据当前编码方式将获取的字符数据流转换为字符编码串。
本发明实施例中,可为客户端获取服务端发送的字符数据流,也可为服务端获取客户端发送的字符数据流,如机顶盒端获取前端发送的字符数据流;也可为当前模块从其他模块获取到字符数据流,如上层应用模块从代码底层模块 获取到字符数据流。当获取到字符数据流后,可通过当前编码方式将获取的字符数据流转换为字符编码串,其中,当前编码方式可为默认的编码方式,默认编码方式的设置可包括设置使用范围最大的编码方式,或模块之间协商好的编码方式。编码方式可包括ASCII、GB2312、GBK、GB18030、BIG5、ISO-8859-1、UCS-2、UTF-8、UTF-16等多种编码方式。
步骤S102,判断转换后的所述字符编码串中是否存在字符乱码。
本发明实施例中,将获取到的字符数据流根据当前编码方式转换为字符编码串后,可判断字符编码串中是否存在字符乱码。可选的,可将字符编码串中的字符编码子串与当前编码方式对应的数据库中的字和词组进行比对,若在数据库中未查找到字符编码子串,则表明编码转换出的字符编码子串为乱码,不能被用户识别,则可判断出字符编码串中存在字符乱码。若在数据库中查找到字符编码串包含的所有字符编码子串,则表明字符编码串中不存在字符乱码。则表明当前编码方式适用于获取到的字符数据流,可记录当前编码方式,以便下次获取到字符数据流时,继续使用当前编码方式进行编码。
步骤S103,若在步骤S102中判断的结果为是,则将所述当前编码方式切换为其他编码方式,以使所述其他编码方式适用于所述获取的字符数据流。
本发明实施例中,当在步骤S102中判断出转换后的字符编码串中存在字符乱码,可选的,即字符编码串中的字符编码子串未在数据库中查找到对应的常用字或词组,则表明该字符编码子串为乱码,当前的编码方式不适用于获取到的字符数据流,则需将当前编码方式切换为其他编码方式,并重新对获取到的字符数据流进行编码转换,并重复进行步骤S102,从而筛选出编码转换后的字符编码串中不存在字符乱码的编码方式,即为适用于获取的字符数据流的编码方式。可选的,可记录筛选出的适用于字符数据流的编码方式,并可将其设置为默认的编码方式,以便在下一次获取字符数据流时,可根据上述设置的默认的编码方式对字符数据流进行编码转换。
通过根据当前编码方式将获取的字符数据流转换为字符编码串,并且判断转换后的字符编码串中是否存在字符乱码,可确定当前编码方式是否为适合字符数据流的编码方式,若判断出存在字符乱码,则可通过将当前编码方式切换为其他编码方式,以将编码方式调整为适合获取字符数据流的编码方式,满足了获取的不同字符数据流对编码方式的需求,降低编码过程中出现乱码的概率, 提升用户体验。
参见图2,为本发明中的一种编码方式的切换方法的另一种实施例的流程图。
步骤S201,获取所述字符数据流。
本发明实施例中,可为客户端获取服务端发送的字符数据流,也可为服务端获取客户端发送的字符数据流,如机顶盒端获取前端发送的字符数据流;也可为当前模块从其他模块获取到字符数据流,如上层应用模块从代码底层模块获取到字符数据流。
步骤S202,记录获取所述字符数据流的时间或次数。
本发明实施例中,可通过设定定时器或计数器以启动编码方式的切换方法,当获取到字符数据流后,可记录获取到字符数据流的时间或次数,从而根据定时器或计数器设定的时间或设置的计数数值,可判断是否需要根据当前编码方式对获取的字符数据流进行转换。若记录当前获取字符数据流的时间或次数尚未达到预先设定的时间或计数数值,则表明无需对当前获取的字符数据流进行编码方式校验的工作,即无需进行下述步骤,仅以默认或记录的编码方式对当前获取的字符数据流进行编码转换,从而可优化系统性能,提高系统运作效率。
步骤S203,当所述记录的时间或次数超过预设的阈值时,根据所述当前编码方式将所述获取的字符数据流转换为所述字符编码串。
本发明实施例中,当在步骤S202中记录的时间或次数超过预设的阈值时,即超过定时器或计数器设定的时间或设置的计数数值时,则表明需要进行编码方式的识别,以确定当前编码方式是否适用于获取的字符数据流。则根据当前编码方式将获取的字符数据流转换为字符编码串,其中,当前编码方式可为默认的编码方式,默认编码方式的设置可包括设置使用范围最大的编码方式,或模块之间协商好的编码方式。编码方式可包括ASCII、GB2312、GBK、GB18030、BIG5、ISO-8859-1、UCS-2、UTF-8、UTF-16等多种编码方式。
步骤S204,在所述字符编码串中截取字符编码子串,其中,所述字符编码子串的长度为所述当前编码方式对应的编码长度。
本发明实施例中,根据当前编码方式将获取的字符数据流转换为字符编码串后,可在字符编码串中截取字符编码子串,从而可根据以下步骤分析每个字符编码子串是否为常用字或常用词组,即可判定字符编码串中是否存在字符乱 码。其中,可根据不同的编码方式截取不同长度的编码子串,如当前编码方式为GB2313,则截取的字符编码子串的长度为2个字节。从而保证截取的字符编码子串不会被系统认作乱码。
步骤S205,在所述当前编码方式对应的字和/或词语数据库中,查询是否存在所述字符编码子串。
本发明实施例中,当获取字符编码子串后,可通过在当前编码方式对应的字和/或词语数据库中查找是否存在获取的字符编码子串,来确定所查询的字符编码子串是否为乱码,若在字和/或数据库中查找到相应的字符编码子串,则表明当前查询的字符编码子串不是字符乱码,则可继续截取下一个字符编码子串以进行查找,若未找到,则可确定为字符乱码。
本发明实施例中,可选的,除了可通过在数据库中进行查询,也可通过其他方式进行查询,如解析字符编码子串是否为常规组合形式等,其中,查找数据库的方式由于效率较高,为优选方案。数据库的建立或查询可通过sql server,mysql,oracle,access等。
步骤S206,若在步骤S205中查询的结果为否,则确定所述字符编码子串为所述字符乱码。
本发明实施例中,当在步骤S205中,未在字和/或词组的数据库中查找到当前截取的字符编码子串时,则表明字符编码子串未形成字或词组,可确定当前截取的字符编码子串为字符乱码。
步骤S207,记录所述字符编码串中所述字符乱码的个数。
本发明实施例中,可通过步骤S204-S206判定字符编码串中是否存在字符乱码,当通过以上步骤查询完字符编码串中包含的所有字符编码子串后,则可统计并记录字符编码串中查找出的字符乱码的个数。并可设定阈值,如果个数未超过设定阈值,则可能该字符乱码对应的字或词组较生僻,未被数据库收录,则可无需切换当前编码方式。
步骤S208,判断所述记录的字符乱码的个数与所述字符编码子串总数的比值是否超过预设阈值。
本发明实施例中,也可通过判断字符乱码在字符编码子串中所占的比例是否超过设定阈值,来判定是否需要切换编码方式。如预设的阈值为3%,截取的字符编码子串为100个,则查询出的字符乱码不超过3个,即表明无需进行编 码方式切换,若超过,则表明当前编码方式不适用于当前获取的字符数据流,需进行编码方式切换。
步骤S209,若在步骤S208中判断的结果为是,则将所述当前编码方式切换为其他编码方式,以使所述其他编码方式适用于所述获取的字符数据流。
本发明实施例中,当在步骤S208中判断出字符乱码所占比例超过预设阈值时,将当前编码方式切换为其他方式。并重新对获取到的字符数据流进行编码转换,并重复步骤S204-S206对字符数据流进行字符乱码查询,从而筛选出编码转换后的字符编码串中不存在字符乱码的编码方式,即为适用于获取的字符数据流的编码方式。可选的,可记录筛选出的适用于字符数据流的编码方式,并可将其设置为默认的编码方式,以便在下一次获取字符数据流时,可根据上述设置的默认的编码方式对字符数据流进行编码转换。
步骤S210,若在步骤S208中判断的结果为否,则设置所述当前编码方式为默认编码方式,以使在下次获取所述字符数据流时,根据所述默认编码方式转换所述字符数据流。
本发明实施例中,若在步骤S208中判断字符乱码所占比例未超过预设阈值时,则表明当前编码方式适用于获取的字符数据流,则可将当前编码方式设置为默认编码方式。当下次获取字符数据流时,可根据设置的默认编码方式对字符数据流进行编码转换,从而节省了系统空间,提高了系统性能。
通过根据当前编码方式将获取的字符数据流转换为字符编码串,并且判断转换后的字符编码串中是否存在字符乱码,可确定当前编码方式是否为适合字符数据流的编码方式,若判断出存在字符乱码,则可通过将当前编码方式切换为其他编码方式,以将编码方式调整为适合获取字符数据流的编码方式,满足了获取的不同字符数据流对编码方式的需求,降低编码过程中出现乱码的概率,提升用户体验。
参见图3,为本发明中的一种装置的一种实施例的结构示意图。该装置可包括转换模块01、判断模块02、切换模块03。
其中,转换模块01,用于根据当前编码方式将获取的字符数据流转换为字符编码串。
本发明实施例中,可为客户端获取服务端发送的字符数据流,也可为服务端获取客户端发送的字符数据流,如机顶盒端获取前端发送的字符数据流;也 可为当前模块从其他模块获取到字符数据流,如上层应用模块从代码底层模块获取到字符数据流。当获取到字符数据流后,转换模块01可通过当前编码方式将获取的字符数据流转换为字符编码串,其中,当前编码方式可为默认的编码方式,默认编码方式的设置可包括设置使用范围最大的编码方式,或模块之间协商好的编码方式。编码方式可包括ASCII、GB2312、GBK、GB18030、BIG5、ISO-8859-1、UCS-2、UTF-8、UTF-16等多种编码方式。
判断模块02,用于判断所述转换模块转换后的所述字符编码串中是否存在字符乱码。
本发明实施例中,转换模块01将获取到的字符数据流根据当前编码方式转换为字符编码串后,判断模块02可判断字符编码串中是否存在字符乱码。可选的,可将字符编码串中的字符编码子串与当前编码方式对应的数据库中的字和词组进行比对,若在数据库中未查找到字符编码子串,则表明编码转换出的字符编码子串为乱码,不能被用户识别,则可判断出字符编码串中存在字符乱码。若在数据库中查找到字符编码串包含的所有字符编码子串,则表明字符编码串中不存在字符乱码。则表明当前编码方式适用于获取到的字符数据流,可记录当前编码方式,以便下次获取到字符数据流时,继续使用当前编码方式进行编码。
切换模块03,用于当所述判断模块02判断的结果为是时,则将所述当前编码方式切换为其他编码方式。
本发明实施例中,当在判断模块02判断出转换后的字符编码串中存在字符乱码,可选的,即字符编码串中的字符编码子串未在数据库中查找到对应的常用字或词组,则表明该字符编码子串为乱码,当前的编码方式不适用于获取到的字符数据流,则切换模块03需将当前编码方式切换为其他编码方式,并重新对获取到的字符数据流进行编码转换,并重复进行步骤S102,从而筛选出编码转换后的字符编码串中不存在字符乱码的编码方式,即为适用于获取的字符数据流的编码方式。可选的,可记录筛选出的适用于字符数据流的编码方式,并可将其设置为默认的编码方式,以便在下一次获取字符数据流时,可根据上述设置的默认的编码方式对字符数据流进行编码转换。
通过根据当前编码方式将获取的字符数据流转换为字符编码串,并且判断转换后的字符编码串中是否存在字符乱码,可确定当前编码方式是否为适合字 符数据流的编码方式,若判断出存在字符乱码,则可通过将当前编码方式切换为其他编码方式,以将编码方式调整为适合获取字符数据流的编码方式,满足了获取的不同字符数据流对编码方式的需求,降低编码过程中出现乱码的概率,提升用户体验。
参见图4,为本发明中的一种装置的另一种实施例的结构示意图。该装置可包括转换模块11、截取模块12、查询模块13、确定模块14、记录模块15、判断模块16、切换模块17、设置模块18。
其中,转换模块11,用于根据当前编码方式将获取的字符数据流转换为字符编码串。
本发明实施例中,转换模块11可包括获取单元111、记录单元112、转换单元113。
获取单元111,用于获取所述字符数据流。
本发明实施例中,获取单元111可为客户端获取服务端发送的字符数据流,也可为服务端获取客户端发送的字符数据流,如机顶盒端获取前端发送的字符数据流;也可为当前模块从其他模块获取到字符数据流,如上层应用模块从代码底层模块获取到字符数据流。
记录单元112,用于记录所述获取单元111获取所述字符数据流的时间或次数。
本发明实施例中,可通过设定定时器或计数器以启动编码方式的切换方法,当获取单元111获取到字符数据流后,记录单元112可记录获取到字符数据流的时间或次数,从而根据定时器或计数器设定的时间或设置的计数数值,可判断是否需要根据当前编码方式对获取的字符数据流进行转换。若记录当前获取字符数据流的时间或次数尚未达到预先设定的时间或计数数值,则表明无需对当前获取的字符数据流进行编码方式校验的工作,即无需进入下述单元,仅以默认或记录的编码方式对当前获取的字符数据流进行编码转换,从而可优化系统性能,提高系统运作效率。
转换单元113,用于当所述记录单元112记录的时间或次数超过预设的阈值时,根据所述当前编码方式将所述获取的字符数据流转换为所述字符编码串。
本发明实施例中,当在记录单元112记录的时间或次数超过预设的阈值时,即超过定时器或计数器设定的时间或设置的计数数值时,则表明需要进行编码 方式的识别,以确定当前编码方式是否适用于获取的字符数据流。则转换单元113根据当前编码方式将获取的字符数据流转换为字符编码串,其中,当前编码方式可为默认的编码方式,默认编码方式的设置可包括设置使用范围最大的编码方式,或模块之间协商好的编码方式。编码方式可包括ASCII、GB2312、GBK、GB18030、BIG5、ISO-8859-1、UCS-2、UTF-8、UTF-16等多种编码方式。
截取模块12,用于在所述字符编码串中截取字符编码子串,其中,所述字符编码子串的长度为所述当前编码方式对应的编码长度。
本发明实施例中,转换模块11根据当前编码方式将获取的字符数据流转换为字符编码串后,截取模块12可在字符编码串中截取字符编码子串,从而可根据以下步骤分析每个字符编码子串是否为常用字或常用词组,即可判定字符编码串中是否存在字符乱码。其中,可根据不同的编码方式截取不同长度的编码子串,如当前编码方式为GB2313,则截取的字符编码子串的长度为2个字节。从而保证截取的字符编码子串不会被系统认作乱码。
查询模块13,用于在所述当前编码方式对应的字和/或词语数据库中,查询是否存在所述截取模块截取的所述字符编码子串。
本发明实施例中,当获取字符编码子串后,查询模块13可通过在当前编码方式对应的字和/或词语数据库中查找是否存在获取的字符编码子串,来确定所查询的字符编码子串是否为乱码,若在字和/或数据库中查找到相应的字符编码子串,则表明当前查询的字符编码子串不是字符乱码,则可继续截取下一个字符编码子串以进行查找,若未找到,则可确定为字符乱码。
本发明实施例中,可选的,除了可通过在数据库中进行查询,也可通过其他方式进行查询,如解析字符编码子串是否为常规组合形式等,其中,查找数据库的方式由于效率较高,为优选方案。数据库的建立或查询可通过sql server,mysql,oracle,access等。
确定模块14,用于当所述查询模块13查询的结果为否时,确定所述字符编码子串为所述字符乱码。
本发明实施例中,当查询模块13未在字和/或词组的数据库中查找到当前截取的字符编码子串时,则表明字符编码子串未形成字或词组,确定模块14可确定当前截取的字符编码子串为字符乱码。
记录模块15,用于在所述确定模块确定所述字符编码子串为所述字符乱码 之后,记录所述字符编码串中所述字符乱码的个数。
本发明实施例中,可通过截取模块12、查询模块13、确定模块14判定字符编码串中是否存在字符乱码,当通过以上模块查询完字符编码串中包含的所有字符编码子串后,则记录模块15可统计并记录字符编码串中查找出的字符乱码的个数。并可设定阈值,如果个数未超过设定阈值,则可能该字符乱码对应的字或词组较生僻,未被数据库收录,则可无需切换当前编码方式。
判断模块16,判断所述个数记录模块记录的字符乱码的个数与所述字符编码子串总数的比值是否超过预设阈值。
本发明实施例中,判断模块16也可通过判断字符乱码在字符编码子串中所占的比例是否超过设定阈值,来判定是否需要切换编码方式。如预设的阈值为3%,截取的字符编码子串为100个,则查询出的字符乱码不超过3个,即表明无需进行编码方式切换,若超过,则表明当前编码方式不适用于当前获取的字符数据流,需进行编码方式切换。
切换模块17,用于当所述判断模块16判断的结果为是时,则将所述当前编码方式切换为其他编码方式。
本发明实施例中,当在判断模块16判断出字符乱码所占比例超过预设阈值时,切换模块17将当前编码方式切换为其他方式。并重新对获取到的字符数据流进行编码转换,并重复对字符数据流进行字符乱码查询,从而筛选出编码转换后的字符编码串中不存在字符乱码的编码方式,即为适用于获取的字符数据流的编码方式。可选的,可记录筛选出的适用于字符数据流的编码方式,并可将其设置为默认的编码方式,以便在下一次获取字符数据流时,可根据上述设置的默认的编码方式对字符数据流进行编码转换。
设置模块18,用于当所述判断模块16判断的结果为否时,设置所述当前编码方式为默认编码方式,以使在下次获取所述字符数据流时,根据所述默认编码方式转换所述字符数据流。
本发明实施例中,若在判断模块16中判断字符乱码所占比例未超过预设阈值时,则表明当前编码方式适用于获取的字符数据流,则设置模块18可将当前编码方式设置为默认编码方式。当下次获取字符数据流时,可根据设置的默认编码方式对字符数据流进行编码转换,从而节省了系统空间,提高了系统性能。
通过根据当前编码方式将获取的字符数据流转换为字符编码串,并且判断 转换后的字符编码串中是否存在字符乱码,可确定当前编码方式是否为适合字符数据流的编码方式,若判断出存在字符乱码,则可通过将当前编码方式切换为其他编码方式,以将编码方式调整为适合获取字符数据流的编码方式,满足了获取的不同字符数据流对编码方式的需求,降低编码过程中出现乱码的概率,提升用户体验。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
以上所述的实施方式,并不构成对该技术方案保护范围的限定。任何在上述实施方式的精神和原则之内所作的修改、等同替换和改进等,均应包含在该技术方案的保护范围之内。

一种编码方式的切换方法及装置.pdf_第1页
第1页 / 共14页
一种编码方式的切换方法及装置.pdf_第2页
第2页 / 共14页
一种编码方式的切换方法及装置.pdf_第3页
第3页 / 共14页
点击查看更多>>
资源描述

《一种编码方式的切换方法及装置.pdf》由会员分享,可在线阅读,更多相关《一种编码方式的切换方法及装置.pdf(14页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN104092514A43申请公布日20141008CN104092514A21申请号201410322903122申请日20140708H04L1/0020060171申请人深圳市同洲电子股份有限公司地址518057广东省深圳市南山区高新科技园北区彩虹科技大厦72发明人张安龙74专利代理机构广州三环专利代理有限公司44202代理人郝传鑫熊永强54发明名称一种编码方式的切换方法及装置57摘要本发明公开了一种编码方式的切换方法,包括根据当前编码方式将获取的字符数据流转换为字符编码串;判断转换后的所述字符编码串中是否存在字符乱码;若判断的结果为是,则将所述当前编码方式切换为其他编码。

2、方式,以使所述其他编码方式适用于所述获取的字符数据流。本发明还公开了一种装置。可通过切换不同的编码方式,满足获取的不同字符数据流对编码方式的需求,降低编码过程中出现乱码的概率,提升用户体验。51INTCL权利要求书2页说明书8页附图3页19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书8页附图3页10申请公布号CN104092514ACN104092514A1/2页21一种编码方式的切换方法,其特征在于,包括根据当前编码方式将获取的字符数据流转换为字符编码串;判断转换后的所述字符编码串中是否存在字符乱码;若判断的结果为是,则将所述当前编码方式切换为其他编码方式,以使所述其他编。

3、码方式适用于所述获取的字符数据流。2如权利要求1所述方法,其特征在于,所述根据当前编码方式将获取的字符数据流转换为字符编码串,包括获取所述字符数据流;记录获取所述字符数据流的时间或次数;当所述记录的时间或次数超过预设的阈值时,根据所述当前编码方式将所述获取的字符数据流转换为所述字符编码串。3如权利要求1或2所述方法,其特征在于,在所述判断转换后的所述字符编码串中是否存在字符乱码之前,所述方法还包括在所述字符编码串中截取字符编码子串,其中,所述字符编码子串的长度为所述当前编码方式对应的编码长度;在所述当前编码方式对应的字和/或词语数据库中,查询是否存在所述字符编码子串;若查询的结果为否,则确定所。

4、述字符编码子串为所述字符乱码。4如权利要求3所述方法,其特征在于,在所述若查询的结果为否,则确定所述字符编码子串为所述字符乱码之后,所述方法还包括记录所述字符编码串中所述字符乱码的个数;其中,所述判断转换后的所述字符编码串中是否存在字符乱码,包括判断所述记录的字符乱码的个数与所述字符编码子串总数的比值是否超过预设阈值。5如权利要求4所述方法,其特征在于,在所述若判断的结果为是,则将所述当前编码方式切换为其他编码方式,以使所述其他编码方式适用于所述获取的字符数据流之后,所述方法还包括若判断的结果为否,则设置所述当前编码方式为默认编码方式,以使在下次获取所述字符数据流时,根据所述默认编码方式转换所。

5、述字符数据流。6一种装置,其特征在于,包括转换模块,用于根据当前编码方式将获取的字符数据流转换为字符编码串;判断模块,用于判断所述转换模块转换后的所述字符编码串中是否存在字符乱码;切换模块,用于当所述判断模块判断的结果为是时,则将所述当前编码方式切换为其他编码方式。7如权利要求6所述装置,其特征在于,所述转换模块包括获取单元,用于获取所述字符数据流;记录单元,用于记录所述获取单元获取所述字符数据流的时间或次数;转换单元,用于当所述记录单元记录的时间或次数超过预设的阈值时,根据所述当前编码方式将所述获取的字符数据流转换为所述字符编码串。8如权利要求6或7所述装置,其特征在于,所述装置还包括权利要。

6、求书CN104092514A2/2页3截取模块,用于在所述判断模块判断转换后的所述字符编码串中是否存在字符乱码之前,在所述字符编码串中截取字符编码子串,其中,所述字符编码子串的长度为所述当前编码方式对应的编码长度;查询模块,用于在所述当前编码方式对应的字和/或词语数据库中,查询是否存在所述截取模块截取的所述字符编码子串;确定模块,用于当所述查询模块查询的结果为否时,确定所述字符编码子串为所述字符乱码。9如权利要求8所述装置,其特征在于,所述装置还包括记录模块,用于在所述确定模块确定所述字符编码子串为所述字符乱码之后,记录所述字符编码串中所述字符乱码的个数;其中,所述判断模块还用于判断所述个数记。

7、录模块记录的字符乱码的个数与所述字符编码子串总数的比值是否超过预设阈值。10如权利要求4所述装置,其特征在于,所述装置还包括设置模块,用于当所述判断模块判断的结果为否时,设置所述当前编码方式为默认编码方式,以使在下次获取所述字符数据流时,根据所述默认编码方式转换所述字符数据流。权利要求书CN104092514A1/8页4一种编码方式的切换方法及装置技术领域0001本发明涉及通信技术领域,尤其涉及一种编码方式的切换方法及装置。背景技术0002目前,可通过多种编码方式实现数据传输,通常客户端与服务端之间可协议数据字符串传输的编码方式,以使在数据进行传输后,客户端或服务端能够根据正确的编码方式进行解。

8、码。若客户端与服务端未协商好编码方式,或编码方式在协议层或其他层级中被去掉后,容易出现乱码现象,或字符串中包含非英文和数字字符时,默认的编码方式通常会无法解析非英文和数字字符,导致出现乱码,降低了用户体验。发明内容0003本发明实施例提供一种编码方式的切换方法。可通过切换不同的编码方式,满足获取的不同字符数据流对编码方式的需求,降低编码过程中出现乱码的概率,提升用户体验。0004一方面,本发明的实施例提供了一种编码方式的切换方法,包括0005根据当前编码方式将获取的字符数据流转换为字符编码串;0006判断转换后的所述字符编码串中是否存在字符乱码;0007若判断的结果为是,则将所述当前编码方式切。

9、换为其他编码方式。0008另一方面,本发明的实施例提供了一种装置,包括0009转换模块,用于根据当前编码方式将获取的字符数据流转换为字符编码串;0010判断模块,用于判断所述转换模块转换后的所述字符编码串中是否存在字符乱码;0011切换模块,用于当所述判断模块判断的结果为是时,则将所述当前编码方式切换为其他编码方式。0012通过根据当前编码方式将获取的字符数据流转换为字符编码串,并且判断转换后的字符编码串中是否存在字符乱码,可确定当前编码方式是否为适合字符数据流的编码方式,若判断出存在字符乱码,则可通过将当前编码方式切换为其他编码方式,以将编码方式调整为适合获取字符数据流的编码方式,满足LE获。

10、取的不同字符数据流对编码方式的需求,降低编码过程中出现乱码的概率,提升用户体验。附图说明0013为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。0014图1是本发明中的一种编码方式的切换方法的一种实施例的流程图;说明书CN104092514A2/8页50015图2是本发明中的一种编码方式的切换方法的另一种实施例的流程图;0016图3是本发明中的一种装置的一种实施例的结构示意图;0017图。

11、4是本发明中的一种装置的另一种实施例的结构示意图。具体实施方式0018下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。0019本发明实施例中所提及装置及能够实现下述方法的装置可包括客户终端,如手机、平板电脑、机顶盒、智能电视;或服务端等能够进行数据编码的装置。以上所述装置均在本发明保护范围内。0020下面参考附图对本发明的实施例进行描述。参见图1,为本发明中的一种编码方式的切换方法的一。

12、种实施例的流程图。0021步骤S101,根据当前编码方式将获取的字符数据流转换为字符编码串。0022本发明实施例中,可为客户端获取服务端发送的字符数据流,也可为服务端获取客户端发送的字符数据流,如机顶盒端获取前端发送的字符数据流;也可为当前模块从其他模块获取到字符数据流,如上层应用模块从代码底层模块获取到字符数据流。当获取到字符数据流后,可通过当前编码方式将获取的字符数据流转换为字符编码串,其中,当前编码方式可为默认的编码方式,默认编码方式的设置可包括设置使用范围最大的编码方式,或模块之间协商好的编码方式。编码方式可包括ASCII、GB2312、GBK、GB18030、BIG5、ISO8859。

13、1、UCS2、UTF8、UTF16等多种编码方式。0023步骤S102,判断转换后的所述字符编码串中是否存在字符乱码。0024本发明实施例中,将获取到的字符数据流根据当前编码方式转换为字符编码串后,可判断字符编码串中是否存在字符乱码。可选的,可将字符编码串中的字符编码子串与当前编码方式对应的数据库中的字和词组进行比对,若在数据库中未查找到字符编码子串,则表明编码转换出的字符编码子串为乱码,不能被用户识别,则可判断出字符编码串中存在字符乱码。若在数据库中查找到字符编码串包含的所有字符编码子串,则表明字符编码串中不存在字符乱码。则表明当前编码方式适用于获取到的字符数据流,可记录当前编码方式,以便下。

14、次获取到字符数据流时,继续使用当前编码方式进行编码。0025步骤S103,若在步骤S102中判断的结果为是,则将所述当前编码方式切换为其他编码方式,以使所述其他编码方式适用于所述获取的字符数据流。0026本发明实施例中,当在步骤S102中判断出转换后的字符编码串中存在字符乱码,可选的,即字符编码串中的字符编码子串未在数据库中查找到对应的常用字或词组,则表明该字符编码子串为乱码,当前的编码方式不适用于获取到的字符数据流,则需将当前编码方式切换为其他编码方式,并重新对获取到的字符数据流进行编码转换,并重复进行步骤S102,从而筛选出编码转换后的字符编码串中不存在字符乱码的编码方式,即为适用于获取的。

15、字符数据流的编码方式。可选的,可记录筛选出的适用于字符数据流的编码方式,并可将其设置为默认的编码方式,以便在下一次获取字符数据流时,可根据上述设置的默认说明书CN104092514A3/8页6的编码方式对字符数据流进行编码转换。0027通过根据当前编码方式将获取的字符数据流转换为字符编码串,并且判断转换后的字符编码串中是否存在字符乱码,可确定当前编码方式是否为适合字符数据流的编码方式,若判断出存在字符乱码,则可通过将当前编码方式切换为其他编码方式,以将编码方式调整为适合获取字符数据流的编码方式,满足了获取的不同字符数据流对编码方式的需求,降低编码过程中出现乱码的概率,提升用户体验。0028参见。

16、图2,为本发明中的一种编码方式的切换方法的另一种实施例的流程图。0029步骤S201,获取所述字符数据流。0030本发明实施例中,可为客户端获取服务端发送的字符数据流,也可为服务端获取客户端发送的字符数据流,如机顶盒端获取前端发送的字符数据流;也可为当前模块从其他模块获取到字符数据流,如上层应用模块从代码底层模块获取到字符数据流。0031步骤S202,记录获取所述字符数据流的时间或次数。0032本发明实施例中,可通过设定定时器或计数器以启动编码方式的切换方法,当获取到字符数据流后,可记录获取到字符数据流的时间或次数,从而根据定时器或计数器设定的时间或设置的计数数值,可判断是否需要根据当前编码方。

17、式对获取的字符数据流进行转换。若记录当前获取字符数据流的时间或次数尚未达到预先设定的时间或计数数值,则表明无需对当前获取的字符数据流进行编码方式校验的工作,即无需进行下述步骤,仅以默认或记录的编码方式对当前获取的字符数据流进行编码转换,从而可优化系统性能,提高系统运作效率。0033步骤S203,当所述记录的时间或次数超过预设的阈值时,根据所述当前编码方式将所述获取的字符数据流转换为所述字符编码串。0034本发明实施例中,当在步骤S202中记录的时间或次数超过预设的阈值时,即超过定时器或计数器设定的时间或设置的计数数值时,则表明需要进行编码方式的识别,以确定当前编码方式是否适用于获取的字符数据流。

18、。则根据当前编码方式将获取的字符数据流转换为字符编码串,其中,当前编码方式可为默认的编码方式,默认编码方式的设置可包括设置使用范围最大的编码方式,或模块之间协商好的编码方式。编码方式可包括ASCII、GB2312、GBK、GB18030、BIG5、ISO88591、UCS2、UTF8、UTF16等多种编码方式。0035步骤S204,在所述字符编码串中截取字符编码子串,其中,所述字符编码子串的长度为所述当前编码方式对应的编码长度。0036本发明实施例中,根据当前编码方式将获取的字符数据流转换为字符编码串后,可在字符编码串中截取字符编码子串,从而可根据以下步骤分析每个字符编码子串是否为常用字或常用。

19、词组,即可判定字符编码串中是否存在字符乱码。其中,可根据不同的编码方式截取不同长度的编码子串,如当前编码方式为GB2313,则截取的字符编码子串的长度为2个字节。从而保证截取的字符编码子串不会被系统认作乱码。0037步骤S205,在所述当前编码方式对应的字和/或词语数据库中,查询是否存在所述字符编码子串。0038本发明实施例中,当获取字符编码子串后,可通过在当前编码方式对应的字和/或词语数据库中查找是否存在获取的字符编码子串,来确定所查询的字符编码子串是否为乱码,若在字和/或数据库中查找到相应的字符编码子串,则表明当前查询的字符编码子说明书CN104092514A4/8页7串不是字符乱码,则可。

20、继续截取下一个字符编码子串以进行查找,若未找到,则可确定为字符乱码。0039本发明实施例中,可选的,除了可通过在数据库中进行查询,也可通过其他方式进行查询,如解析字符编码子串是否为常规组合形式等,其中,查找数据库的方式由于效率较高,为优选方案。数据库的建立或查询可通过SQLSERVER,MYSQL,ORACLE,ACCESS等。0040步骤S206,若在步骤S205中查询的结果为否,则确定所述字符编码子串为所述字符乱码。0041本发明实施例中,当在步骤S205中,未在字和/或词组的数据库中查找到当前截取的字符编码子串时,则表明字符编码子串未形成字或词组,可确定当前截取的字符编码子串为字符乱码。。

21、0042步骤S207,记录所述字符编码串中所述字符乱码的个数。0043本发明实施例中,可通过步骤S204S206判定字符编码串中是否存在字符乱码,当通过以上步骤查询完字符编码串中包含的所有字符编码子串后,则可统计并记录字符编码串中查找出的字符乱码的个数。并可设定阈值,如果个数未超过设定阈值,则可能该字符乱码对应的字或词组较生僻,未被数据库收录,则可无需切换当前编码方式。0044步骤S208,判断所述记录的字符乱码的个数与所述字符编码子串总数的比值是否超过预设阈值。0045本发明实施例中,也可通过判断字符乱码在字符编码子串中所占的比例是否超过设定阈值,来判定是否需要切换编码方式。如预设的阈值为3。

22、,截取的字符编码子串为100个,则查询出的字符乱码不超过3个,即表明无需进行编码方式切换,若超过,则表明当前编码方式不适用于当前获取的字符数据流,需进行编码方式切换。0046步骤S209,若在步骤S208中判断的结果为是,则将所述当前编码方式切换为其他编码方式,以使所述其他编码方式适用于所述获取的字符数据流。0047本发明实施例中,当在步骤S208中判断出字符乱码所占比例超过预设阈值时,将当前编码方式切换为其他方式。并重新对获取到的字符数据流进行编码转换,并重复步骤S204S206对字符数据流进行字符乱码查询,从而筛选出编码转换后的字符编码串中不存在字符乱码的编码方式,即为适用于获取的字符数据。

23、流的编码方式。可选的,可记录筛选出的适用于字符数据流的编码方式,并可将其设置为默认的编码方式,以便在下一次获取字符数据流时,可根据上述设置的默认的编码方式对字符数据流进行编码转换。0048步骤S210,若在步骤S208中判断的结果为否,则设置所述当前编码方式为默认编码方式,以使在下次获取所述字符数据流时,根据所述默认编码方式转换所述字符数据流。0049本发明实施例中,若在步骤S208中判断字符乱码所占比例未超过预设阈值时,则表明当前编码方式适用于获取的字符数据流,则可将当前编码方式设置为默认编码方式。当下次获取字符数据流时,可根据设置的默认编码方式对字符数据流进行编码转换,从而节省了系统空间,。

24、提高了系统性能。0050通过根据当前编码方式将获取的字符数据流转换为字符编码串,并且判断转换后的字符编码串中是否存在字符乱码,可确定当前编码方式是否为适合字符数据流的编码方式,若判断出存在字符乱码,则可通过将当前编码方式切换为其他编码方式,以将编码方式调整为适合获取字符数据流的编码方式,满足了获取的不同字符数据流对编码方式的需说明书CN104092514A5/8页8求,降低编码过程中出现乱码的概率,提升用户体验。0051参见图3,为本发明中的一种装置的一种实施例的结构示意图。该装置可包括转换模块01、判断模块02、切换模块03。0052其中,转换模块01,用于根据当前编码方式将获取的字符数据流。

25、转换为字符编码串。0053本发明实施例中,可为客户端获取服务端发送的字符数据流,也可为服务端获取客户端发送的字符数据流,如机顶盒端获取前端发送的字符数据流;也可为当前模块从其他模块获取到字符数据流,如上层应用模块从代码底层模块获取到字符数据流。当获取到字符数据流后,转换模块01可通过当前编码方式将获取的字符数据流转换为字符编码串,其中,当前编码方式可为默认的编码方式,默认编码方式的设置可包括设置使用范围最大的编码方式,或模块之间协商好的编码方式。编码方式可包括ASCII、GB2312、GBK、GB18030、BIG5、ISO88591、UCS2、UTF8、UTF16等多种编码方式。0054判断。

26、模块02,用于判断所述转换模块转换后的所述字符编码串中是否存在字符乱码。0055本发明实施例中,转换模块01将获取到的字符数据流根据当前编码方式转换为字符编码串后,判断模块02可判断字符编码串中是否存在字符乱码。可选的,可将字符编码串中的字符编码子串与当前编码方式对应的数据库中的字和词组进行比对,若在数据库中未查找到字符编码子串,则表明编码转换出的字符编码子串为乱码,不能被用户识别,则可判断出字符编码串中存在字符乱码。若在数据库中查找到字符编码串包含的所有字符编码子串,则表明字符编码串中不存在字符乱码。则表明当前编码方式适用于获取到的字符数据流,可记录当前编码方式,以便下次获取到字符数据流时,。

27、继续使用当前编码方式进行编码。0056切换模块03,用于当所述判断模块02判断的结果为是时,则将所述当前编码方式切换为其他编码方式。0057本发明实施例中,当在判断模块02判断出转换后的字符编码串中存在字符乱码,可选的,即字符编码串中的字符编码子串未在数据库中查找到对应的常用字或词组,则表明该字符编码子串为乱码,当前的编码方式不适用于获取到的字符数据流,则切换模块03需将当前编码方式切换为其他编码方式,并重新对获取到的字符数据流进行编码转换,并重复进行步骤S102,从而筛选出编码转换后的字符编码串中不存在字符乱码的编码方式,即为适用于获取的字符数据流的编码方式。可选的,可记录筛选出的适用于字符。

28、数据流的编码方式,并可将其设置为默认的编码方式,以便在下一次获取字符数据流时,可根据上述设置的默认的编码方式对字符数据流进行编码转换。0058通过根据当前编码方式将获取的字符数据流转换为字符编码串,并且判断转换后的字符编码串中是否存在字符乱码,可确定当前编码方式是否为适合字符数据流的编码方式,若判断出存在字符乱码,则可通过将当前编码方式切换为其他编码方式,以将编码方式调整为适合获取字符数据流的编码方式,满足了获取的不同字符数据流对编码方式的需求,降低编码过程中出现乱码的概率,提升用户体验。0059参见图4,为本发明中的一种装置的另一种实施例的结构示意图。该装置可包括转换模块11、截取模块12、。

29、查询模块13、确定模块14、记录模块15、判断模块16、切换模块说明书CN104092514A6/8页917、设置模块18。0060其中,转换模块11,用于根据当前编码方式将获取的字符数据流转换为字符编码串。0061本发明实施例中,转换模块11可包括获取单元111、记录单元112、转换单元113。0062获取单元111,用于获取所述字符数据流。0063本发明实施例中,获取单元111可为客户端获取服务端发送的字符数据流,也可为服务端获取客户端发送的字符数据流,如机顶盒端获取前端发送的字符数据流;也可为当前模块从其他模块获取到字符数据流,如上层应用模块从代码底层模块获取到字符数据流。0064记录单。

30、元112,用于记录所述获取单元111获取所述字符数据流的时间或次数。0065本发明实施例中,可通过设定定时器或计数器以启动编码方式的切换方法,当获取单元111获取到字符数据流后,记录单元112可记录获取到字符数据流的时间或次数,从而根据定时器或计数器设定的时间或设置的计数数值,可判断是否需要根据当前编码方式对获取的字符数据流进行转换。若记录当前获取字符数据流的时间或次数尚未达到预先设定的时间或计数数值,则表明无需对当前获取的字符数据流进行编码方式校验的工作,即无需进入下述单元,仅以默认或记录的编码方式对当前获取的字符数据流进行编码转换,从而可优化系统性能,提高系统运作效率。0066转换单元11。

31、3,用于当所述记录单元112记录的时间或次数超过预设的阈值时,根据所述当前编码方式将所述获取的字符数据流转换为所述字符编码串。0067本发明实施例中,当在记录单元112记录的时间或次数超过预设的阈值时,即超过定时器或计数器设定的时间或设置的计数数值时,则表明需要进行编码方式的识别,以确定当前编码方式是否适用于获取的字符数据流。则转换单元113根据当前编码方式将获取的字符数据流转换为字符编码串,其中,当前编码方式可为默认的编码方式,默认编码方式的设置可包括设置使用范围最大的编码方式,或模块之间协商好的编码方式。编码方式可包括ASCII、GB2312、GBK、GB18030、BIG5、ISO885。

32、91、UCS2、UTF8、UTF16等多种编码方式。0068截取模块12,用于在所述字符编码串中截取字符编码子串,其中,所述字符编码子串的长度为所述当前编码方式对应的编码长度。0069本发明实施例中,转换模块11根据当前编码方式将获取的字符数据流转换为字符编码串后,截取模块12可在字符编码串中截取字符编码子串,从而可根据以下步骤分析每个字符编码子串是否为常用字或常用词组,即可判定字符编码串中是否存在字符乱码。其中,可根据不同的编码方式截取不同长度的编码子串,如当前编码方式为GB2313,则截取的字符编码子串的长度为2个字节。从而保证截取的字符编码子串不会被系统认作乱码。0070查询模块13,用。

33、于在所述当前编码方式对应的字和/或词语数据库中,查询是否存在所述截取模块截取的所述字符编码子串。0071本发明实施例中,当获取字符编码子串后,查询模块13可通过在当前编码方式对应的字和/或词语数据库中查找是否存在获取的字符编码子串,来确定所查询的字符编码子串是否为乱码,若在字和/或数据库中查找到相应的字符编码子串,则表明当前查询的字符编码子串不是字符乱码,则可继续截取下一个字符编码子串以进行查找,若未找到,则说明书CN104092514A7/8页10可确定为字符乱码。0072本发明实施例中,可选的,除了可通过在数据库中进行查询,也可通过其他方式进行查询,如解析字符编码子串是否为常规组合形式等,。

34、其中,查找数据库的方式由于效率较高,为优选方案。数据库的建立或查询可通过SQLSERVER,MYSQL,ORACLE,ACCESS等。0073确定模块14,用于当所述查询模块13查询的结果为否时,确定所述字符编码子串为所述字符乱码。0074本发明实施例中,当查询模块13未在字和/或词组的数据库中查找到当前截取的字符编码子串时,则表明字符编码子串未形成字或词组,确定模块14可确定当前截取的字符编码子串为字符乱码。0075记录模块15,用于在所述确定模块确定所述字符编码子串为所述字符乱码之后,记录所述字符编码串中所述字符乱码的个数。0076本发明实施例中,可通过截取模块12、查询模块13、确定模块。

35、14判定字符编码串中是否存在字符乱码,当通过以上模块查询完字符编码串中包含的所有字符编码子串后,则记录模块15可统计并记录字符编码串中查找出的字符乱码的个数。并可设定阈值,如果个数未超过设定阈值,则可能该字符乱码对应的字或词组较生僻,未被数据库收录,则可无需切换当前编码方式。0077判断模块16,判断所述个数记录模块记录的字符乱码的个数与所述字符编码子串总数的比值是否超过预设阈值。0078本发明实施例中,判断模块16也可通过判断字符乱码在字符编码子串中所占的比例是否超过设定阈值,来判定是否需要切换编码方式。如预设的阈值为3,截取的字符编码子串为100个,则查询出的字符乱码不超过3个,即表明无需。

36、进行编码方式切换,若超过,则表明当前编码方式不适用于当前获取的字符数据流,需进行编码方式切换。0079切换模块17,用于当所述判断模块16判断的结果为是时,则将所述当前编码方式切换为其他编码方式。0080本发明实施例中,当在判断模块16判断出字符乱码所占比例超过预设阈值时,切换模块17将当前编码方式切换为其他方式。并重新对获取到的字符数据流进行编码转换,并重复对字符数据流进行字符乱码查询,从而筛选出编码转换后的字符编码串中不存在字符乱码的编码方式,即为适用于获取的字符数据流的编码方式。可选的,可记录筛选出的适用于字符数据流的编码方式,并可将其设置为默认的编码方式,以便在下一次获取字符数据流时,。

37、可根据上述设置的默认的编码方式对字符数据流进行编码转换。0081设置模块18,用于当所述判断模块16判断的结果为否时,设置所述当前编码方式为默认编码方式,以使在下次获取所述字符数据流时,根据所述默认编码方式转换所述字符数据流。0082本发明实施例中,若在判断模块16中判断字符乱码所占比例未超过预设阈值时,则表明当前编码方式适用于获取的字符数据流,则设置模块18可将当前编码方式设置为默认编码方式。当下次获取字符数据流时,可根据设置的默认编码方式对字符数据流进行编码转换,从而节省了系统空间,提高了系统性能。0083通过根据当前编码方式将获取的字符数据流转换为字符编码串,并且判断转换后的字符编码串中。

38、是否存在字符乱码,可确定当前编码方式是否为适合字符数据流的编码方说明书CN104092514A108/8页11式,若判断出存在字符乱码,则可通过将当前编码方式切换为其他编码方式,以将编码方式调整为适合获取字符数据流的编码方式,满足了获取的不同字符数据流对编码方式的需求,降低编码过程中出现乱码的概率,提升用户体验。0084以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域。

39、普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。0085通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备可以是个人计算机,服务器,或者网络设备等执行各个实施例或者实施例的某些部分所述的方法。0086以上所述的实施方式,并不构成对该技术方案保护范围的限定。任何在上述实施方式的精神和原则之内所作的修改、等同替换和改进等,均应包含在该技术方案的保护范围之内。说明书CN104092514A111/3页12图1说明书附图CN104092514A122/3页13图2说明书附图CN104092514A133/3页14图3图4说明书附图CN104092514A14。

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

当前位置:首页 > 电学 > 电通信技术


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