CN108123721B - 编码方法及装置 - Google Patents
编码方法及装置 Download PDFInfo
- Publication number
- CN108123721B CN108123721B CN201611073831.7A CN201611073831A CN108123721B CN 108123721 B CN108123721 B CN 108123721B CN 201611073831 A CN201611073831 A CN 201611073831A CN 108123721 B CN108123721 B CN 108123721B
- Authority
- CN
- China
- Prior art keywords
- character
- characters
- basic
- version
- prefix
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3084—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
- H03M7/3088—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method employing the use of a dictionary, e.g. LZ78
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
一种编码方法及装置,所述方法包括以下步骤:根据用于传输待传输数据的多个通信***,获取所述多个通信***均能识别的通用字符;选取所述通用字符中的至少一部分作为基本字符,基于所述基本字符构建互不相同的码字,以得到码库,不同的码字对应于不同的字符;利用所述码库对所述待传输数据进行编码。本发明实施例可以使接收方无歧义地正确识别接收到的码字中的字符,进而保存已接收的信息,从而提高通信效率。
Description
技术领域
本发明涉及通信领域,尤其是涉及一种编码方法及装置。
背景技术
目前,各个通信***均具有特定的编码规则,例如邮件***采用Base64编码,网址协议采用Http编码,短信采用移动通讯编码标准等,虽然可以采用二进制编解码方式将各个***的码字转换为二进制比特流,进而向其它***进行物理层传输,但是接收方很有可能无法对接收到的码字中的字符进行正确识别,导致通信失败。具体而言,多个字符在不同***中具有不同的二进制比特流与之对应,并且许多字符在不同***中的含义不同,致使接收方在接收到承载有传输信息的二进制比特流时,有可能对上述有歧义的字符识别错误而导致通信失败:例如对错误识别得到的指令进行错误解码,进而导致错误操作;或者因错误识别得到的码字不符合接收方的预设规则而停止解码。在上述情况下,接收方通常不会保存已收到的信息。
在现有技术中,为了使接收方正确识别码字中的字符,需要根据发送方和接收方的不同编码标准,提前准备并发送解码库,以使对方在加载插件或者安装宏应用后,通过编码转换能够正确识别码字并顺利解码。但是,如果对于每次传输,都同时发送解码库,则严重浪费带宽;如果等接收方发生识别错误而导致通信失败后才发送解码库,则会浪费首次发送的传输时间及传输资源,并且降低通信效率。
发明内容
本发明解决的技术问题是提供一种编码方法及装置,可以使接收方无歧义地正确识别接收到的码字中的字符,进而保存已接收的信息,从而提高通信效率。
为解决上述技术问题,本发明实施例提供一种编码方法,包括以下步骤:根据用于传输待传输数据的多个通信***,获取所述多个通信***均能识别的通用字符;选取所述通用字符中的至少一部分作为基本字符,基于所述基本字符构建互不相同的码字,以得到码库,不同的码字对应于不同的字符;利用所述码库对所述待传输数据进行编码。
可选的,所述通用字符选自***数字和英文大小写字母。
可选的,所述基于所述基本字符构建互不相同的码字包括:选取所述基本字符构成互不相同的码字,每个码字包括3个所述基本字符;其中,所述基本字符的总数大于等于41个。
可选的,所述基本字符包括:1、2、3、4、5、6、7、8、9、B、D、F、G、H、J、K、M、P、Q、U、V、W、X、Y、Z、b、d、f、g、h、j、k、m、p、q、u、v、w、x、y、z。
可选的,利用所述码库对所述待传输数据进行编码包括:将所述待传输数据中的字符替换为对应的码字,以生成一个或多个编码字符串;在所述通用字符中选取所述基本字符以外的至少一个通用字符作为前缀字符,并且置于每一所述编码字符串之前。
可选的,所述编码方法还包括:在所述通用字符中选取所述基本字符和前缀字符以外的至少一个通用字符,以作为版本字符,并且所述版本字符置于所述前缀字符与所述编码字符串之间。
可选的,所述版本字符与所述前缀字符之间设置有版本号。
可选的,所述编码方法还包括:在所述通用字符中选取所述基本字符、前缀字符和版本字符以外的至少一个通用字符,以作为长度字符,并且所述长度字符置于所述版本字符与所述编码字符串之间。
可选的,所述长度字符与所述版本字符之间设置有所述编码字符串的长度。
可选的,所述编码方法还包括:在所述通用字符中选取所述基本字符和前缀字符以外的至少一个通用字符,以作为长度字符,并且所述长度字符置于所述前缀字符与所述编码字符串之间。
可选的,所述长度字符与所述前缀字符之间设置有所述编码字符串的长度。
为解决上述技术问题,本发明实施例提供一种编码装置,包括:获取模块,适于根据用于传输待传输数据的多个通信***,获得所述多个通信***均能识别的通用字符;构建模块,适于选取所述通用字符中的至少一部分作为基本字符,基于所述基本字符构建互不相同的码字,以得到码库,不同的码字对应于不同的字符;编码模块,适于利用所述码库对所述待传输数据进行编码。
可选的,所述通用字符选自***数字和英文大小写字母。
可选的,所述构建模块包括:构建子模块,适于选取所述基本字符构成互不相同的码字,每个码字包括3个所述基本字符;其中,所述基本字符的总数大于等于41个。
可选的,所述基本字符包括:1、2、3、4、5、6、7、8、9、B、D、F、G、H、J、K、M、P、Q、U、V、W、X、Y、Z、b、d、f、g、h、j、k、m、p、q、u、v、w、x、y、z。
可选的,所述编码模块包括:替代子模块,适于将所述待传输数据中的字符替换为对应的码字,以生成一个或多个编码字符串;前缀放置子模块,适于在所述通用字符中选取所述基本字符以外的至少一个通用字符作为前缀字符,并且置于每一所述编码字符串之前。
可选的,所述编码装置还包括:版本放置模块,适于在所述通用字符中选取所述基本字符和前缀字符以外的至少一个通用字符,以作为版本字符,并且所述版本字符置于所述前缀字符与所述编码字符串之间。
可选的,所述版本字符与所述前缀字符之间设置有版本号。
可选的,所述编码装置还包括:第一长度放置模块,适于在所述通用字符中选取所述基本字符、前缀字符和版本字符以外的至少一个通用字符,以作为长度字符,并且所述长度字符置于所述版本字符与所述编码字符串之间。
可选的,所述长度字符与所述版本字符之间设置有所述编码字符串的长度。
可选的,所述编码装置还包括:第二长度放置模块,适于在所述通用字符中选取所述基本字符和前缀字符以外的至少一个通用字符,以作为长度字符并且所述长度字符置于所述前缀字符与所述编码字符串之间。
可选的,所述长度字符与所述前缀字符之间设置有所述编码字符串的长度。
与现有技术相比,本发明实施例的技术方案具有以下有益效果:
本发明实施例提供一种编码方法,包括以下步骤:根据用于传输待传输数据的多个通信***,获取所述多个通信***均能识别的通用字符;选取所述通用字符中的至少一部分作为基本字符,基于所述基本字符构建互不相同的码字,以得到码库,不同的码字对应于不同的字符;利用所述码库对所述待传输数据进行编码。本发明实施例采用发送方与接收方均可识别的字符构建码字传输信息,使接收方无歧义地正确识别接收到的码字中的字符,进而在不能对码字解码的情况下仍然可以对已接收的字符进行保存,无需发送方重复发送信息,从而提高通信效率。
进一步,采用本发明实施例,可以通过选用大于等于41个基本字符,以使码库中的码字总数覆盖二字节的二进制数的状态总数,从而实现采用最少的基本字符构成的码字替换相同数目的二进制数,进一步提高通信效率。
进一步,本发明实施例从兼容多个通信***的***数字和英文大小写字母中选取的通用字符中,滤除容易相互混淆的字符和文本中最常出现的字符,获得41个优选的基本字符,由其构成码字还可以降低手动输入出错率。
进一步,本发明实施例在所述通用字符中选取所述基本字符以外的通用字符作为前缀字符,并且置于一个或多个编码字符串之前,可以用于识别编码字符串的起始位置,进而在出现传输错误,如得到的编码字符串中的至少一个码字为不完整码字时,则可以跳过错误的编码字符串,从下一个前缀字符的位置开始接收。
进一步,本发明实施例在所述通用字符中选取所述基本字符和前缀字符以外的通用字符作为版本字符,并且置于所述前缀字符与所述编码字符串之间,用于使接收方分辨不同的加密算法版本或校验算法版本,提高传输的安全性和保密性。
进一步,本发明实施例在所述通用字符中选取所述基本字符、前缀字符和版本字符以外的通用字符作为长度字符,并且置于所述版本字符与所述编码字符串之间,使接收方可以根据接收到的编码字符串的长度分辨是否完整传输,提高传输的完整性。
附图说明
图1是本发明实施例中一种编码方法的流程图;
图2是图1中步骤S13的一种具体实现的流程图;
图3是本发明实施例中一种编码装置的结构示意图;
图4是图3中编码模块33的一种具体实现的结构示意图。
具体实施方式
如前所述,各个通信***均具有特定的编码规则,接收方很有可能无法对接收到的码字中的字符进行正确识别,导致通信失败。在现有技术中,为了使接收方正确识别码字中的字符,需要根据发送方和接收方的不同编码标准,提前准备并发送解码库,以使对方在加载插件或者安装宏应用后,通过编码转换能够正确识别并顺利解码,但是,如果对于每次传输,都同时发送解码库,则严重浪费带宽;如果等接收方发生识别错误而导致通信失败后才发送解码库,则会浪费首次传输的传输时间及传输资源,并且降低通信效率。
本发明的发明人经过分析发现,上述问题的关键在于不同***之间存在多个有歧义的字符,当采用上述字符构建成码字并进行传输时,接收方对其识别的结果往往与发送方不同,为了避免接收方对于有歧义的字符识别错误,发送方应当采用己方与接收方均可无歧义地进行识别的字符构建码字以传输信息。例如,当接收方为Http***时,接收到字符“/”后,会将其作为一种域名的识别符号,进而在解码时过滤掉字符“/”,导致该字符承载的信息无法传送到接收方。为了避免上述错误的发生,发送方应当采用其它无歧义字符替代字符“/”构建码字,再进行传输。
本发明实施例提供一种编码方法,包括以下步骤:根据用于传输待传输数据的多个通信***,获取所述多个通信***均能识别的通用字符;选取所述通用字符中的至少一部分作为基本字符,基于所述基本字符构建互不相同的码字,以得到码库,不同的码字对应于不同的字符;利用所述码库对所述待传输数据进行编码。本发明实施例采用发送方与接收方均可无歧义识别的字符构建码字传输信息,使接收方无歧义地正确识别接收到的码字中的字符,进而在不能对码字解码的情况下仍然可以对已接收的字符进行保存,无需发送方重复发送信息,从而提高通信效率。
为使本发明的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
图1是本发明实施例中一种编码方法的流程图,所述编码方法可以包括步骤S11至S13:
步骤S11:根据用于传输待传输数据的多个通信***,获取所述多个通信***均能识别的通用字符。
步骤S12:选取所述通用字符中的至少一部分作为基本字符,基于所述基本字符构建互不相同的码字,以得到码库,不同的码字对应于不同的字符。
步骤S13:利用所述码库对所述待传输数据进行编码。
在步骤S11的具体实施中,所述多个通信***均能识别的通用字符,例如可以是多个通信***对所述通用字符转换为二进制比特流的编码方式是相同的,即同一通用字符在所述多个通信***中具有相同的二进制比特流,并且该通用字符在所述多个通信***中均未被赋予特殊的含义。
具体地,可以根据用于传输待传输数据的发送方与接收方所属的通信***,在两个通信***的字符集中选取字符交集,进而在字符交集中排除相同字符却具有不同含义的情况,从而得到上述两个***中的通用字符。
进一步地,当需要加入第三个通信***作为发送方或者接收方时,则可以在所述字符交集的基础上,结合第三个通信***的字符集,进一步选取三个通信***中的通用字符。
优选地,可以基于常用的多个通信***,选取所述多个通信***均能识别的通用字符,从而无论传输待传输数据的发送方与接收方属于哪个通信***,均可采用所述通用字符构建的码字进行传输,而无需重新选取通用字符。具体而言,可以在可打印的ASCII字符中选取同时符合网址编码规则、二维码编码规则、邮件编码规则和短信编码规则的所有编码字符的交集,形成能够适应手动输入、打印、网址参数传输、二维码编码、邮件传输和短信传输的统一编码字符集。
其中,美国信息交换标准代码(American Standard Code for InformationInterchange,ASCII)是现今最通用的单字节编码***,使用7位二进制比特流(剩下的1位二进制为0)来表示英文大小写字母,***数字0到9、标点符号,以及在美式英语中使用的特殊控制字符。
在对ASCII字符进行选取的过程中,英文大小写字母,***数字0到9可视为在各个通信***中均能被无歧义识别的通用字符,即将其中的任一个字符通过发送方的编码方式转换为二进制比特流,并传输至属于另一通信***的接收方后,接收方通过己方的编码方式仍然可以将接收到的二进制比特流转换为所述字符,而非其它字符,从而实现正确识别。
在步骤S12的具体实施中,选取所述通用字符中的至少一部分作为基本字符,基于所述基本字符构建互不相同的码字,以得到码库,不同的码字对应于不同的字符。
其中,用于承载待传输信息的码字是由基本字符构建的,并且不同的码字对应于不同的字符。具体地,码字可以包括一个基本字符,也可以包括多个基本字符,码字与码字之间是可区分的。
在具体实施中,为了实现将码库中的码字转换为二进制比特流,进而实现物理层的传输,应当在编码时实现码字覆盖一字节或二字节的二进制数,以使每个二进制数能够用不同的码字替换。
可以理解的是,每个码字包括的基本字符不能过少,因为每个码字包括的基本字符越少,覆盖相同的内容所需要的码字越多。具体而言,当每个码字包括的基本字符为一个时,需要256个码字才能覆盖一字节的二进制数的状态总数,即8位二进制数的256种状态,进一步地,需要256*256=65536个码字才能覆盖二字节的二进制数的状态总数,即16位二进制数的65536种状态。当每个码字包括的基本字符为二个时,需要16个码字才能覆盖一字节的二进制数的状态总数,需要256个码字才能覆盖二字节的二进制数的状态总数。当每个码字包括的基本字符为三个时,需要7个码字即可覆盖一字节的二进制数的状态总数,即7*7*7=343>256,需要41个码字即可覆盖二字节的二进制数的状态总数,即41*41*41=68921>65536。
在具体实施中,可以基于每个码字包括两个基本字符,以覆盖一字节的二进制数,或者每个码字包括三个以上基本字符的情况构建码字。如前所述,为了实现在各个通信***中均能被无歧义识别,通用字符选自英文大小写字母,***数字0到9,共62个字符。即基本字符的可选范围为62个通用字符。
可以理解的是,每个码字包括的基本字符不能过多,因为每个码字包括的基本字符越多,传输每个待传输数据的字符所占用的传输资源越多。
优选地,可以用大于等于41个基本字符构建互不相同的码字,其中每个码字包括3个所述基本字符,可以覆盖二字节的二进制数的状态总数。相当于采用1.5个基本字符覆盖一个字节的二进制数,占用的传输资源要少于每个码字包括2个基本字符的情况下,采用2个基本字符覆盖一个字节的二进制数。
采用本发明实施例,可以通过选用大于等于41个基本字符,以使码库中的码字总数覆盖二字节的二进制数的状态总数,从而实现采用最少的基本字符构成的码字替换相同数目的二进制数,进一步提高通信效率。
更优选地,从兼容多个通信***的***数字和英文大小写字母中选取的通用字符中,滤除容易相互混淆的字符和文本中最常出现的字符,获得41个优选的基本字符,包括:1、2、3、4、5、6、7、8、9、B、D、F、G、H、J、K、M、P、Q、U、V、W、X、Y、Z、b、d、f、g、h、j、k、m、p、q、u、v、w、x、y、z。采用上述优选的基本字符构成码字可以降低手动输入出错率。
在步骤S13的具体实施中,利用所述码库对所述待传输数据进行编码。
参照图2,以下对图1中步骤S13进行进一步说明,利用所述码库对所述待传输数据进行编码的步骤可以包括步骤S21至步骤S24。
步骤S21:将待传输数据中的字符替换为对应的码字,以生成一个或多个编码字符串。
步骤S22:选取通用字符作为前缀字符,并且置于每一所述编码字符串之前。
步骤S23:选取通用字符作为版本字符,并且置于前缀字符与编码字符串之间。
步骤S24:选取通用字符作为长度字符,并且置于版本字符与编码字符串之间。
在步骤S21的具体实施中,将所述待传输数据中的字符替换为对应的码字,以生成一个或多个编码字符串。以每个码字包括3个所述基本字符为例,如果待传输数据中的字符为m个,其中,m为正整数。则待传输数据中的字符将被替换为包括m个码字的编码字符串,即包括3m个基本字符。所述编码字符串可以以一个或多个的形式存在。
在步骤S22的具体实施中,在所述通用字符中选取所述基本字符以外的至少一个通用字符,例如T,作为前缀字符,并且置于编码字符串之前。即用T表示编码字符串的起始位置,如果所述编码字符串为多个,则每个编码字符串之前都可以有前缀字符T。
需要指出的是,还可以仅在部分编码字符串之前设置T,甚至仅在首个编码字符串之前设置T,以达到指示编码字符串的起始位置的作用。
本发明实施例在所述通用字符中选取所述基本字符以外的通用字符作为前缀字符,并且置于一个或多个编码字符串之前,可以用于识别编码字符串的起始位置,进而在出现传输错误,如得到的编码字符串中的至少一个码字为不完整码字时,则可以跳过错误的编码字符串,从下一个前缀字符的位置开始接收。具体而言,编码字符串中的每个码字包括3个基本字符,如果所述编码字符串中包含的基本字符的数量不能被3整除,则可以判断为传输错误,至少一个码字为不完整码字。
在步骤S23的具体实施中,在所述通用字符中选取所述基本字符和前缀字符以外的至少一个通用字符,例如N,以作为版本字符,并且所述版本字符置于所述前缀字符与所述编码字符串之间。即用N表示编码字符串的版本信息,如果所述编码字符串为多个,则每个编码字符串与对应的前缀字符T之间都可以有N。
需要指出的是,还可以仅在部分编码字符串与对应的前缀字符T之间设置版本字符N,甚至仅在首个编码字符串与对应的前缀字符T之间设置版本字符N,以达到指示编码字符串的版本信息的作用。
其中,所述版本信息可以包括加密模式或者校验模式。采用加密模式可以实现对编码字符串中各字符的位置进行置换,增强数据传输的安全性。采用校验模式可以对编码字符串传输的数据进行校正,增强数据传输的准确性。
进一步地,当版本信息为加密模式,例如为有加密或没有加密两种情况时,可以设置为添加N表示有加密,不添加N表示没有加密。同理,当版本信息为校验模式,可以设置为添加N表示有校验,不添加N表示没有校验。
更进一步地,当版本信息较多,仅用一个字符表示不够全面时,所述版本字符与所述前缀字符之间可以设置有版本号。所述版本号可以采用数字、字母或其它符号表示,此时版本字符N可以视为版本号的结束字符,用于表示在前缀字符与版本字符之间的信息为版本号的相关内容。例如,当版本字符表示加密模式时,对可采用的加密算法进行编号,如设置对称加密算法为01,非对称加密算法为02,则采用对称加密算法时,所述前缀字符与编码字符串之间可以添加01N,采用非对称加密算法时,所述前缀字符与编码字符串之间可以添加02N。当版本字符表示校验模式时,对可采用的加密算法进行编号,如设置哈希算法为a,设置奇偶校验算法为b,则采用哈希算法时,所述前缀字符与编码字符串之间可以添加aN,采用奇偶校验算法时,所述前缀字符与编码字符串之间可以添加bN。
需要指出的是,本发明实施例对加密算法及校验算法的选择不做限制。
在具体实施中,可以以协议方式预先指示版本字符之前是否有版本号,每种情况下版本字符与版本号的含义,以确保发送方与接收方对版本字符的理解相同。
本发明实施例在所述通用字符中选取所述基本字符和前缀字符以外的通用字符作为版本字符,并且置于所述前缀字符与所述编码字符串之间,用于使接收方分辨不同的加密算法版本或校验算法版本,提高传输的安全性和保密性。
在步骤S24的具体实施中,在所述通用字符中选取所述基本字符、前缀字符和版本字符以外的至少一个通用字符,例如L,以作为长度字符,并且所述长度字符置于所述版本字符与所述编码字符串之间。即用L表示编码字符串的长度,如果所述编码字符串为多个,则每个编码字符串与对应的版本字符N之间都可以有L。
需要指出的是,还可以仅在部分编码字符串与对应的版本字符N之间设置长度字符L,甚至仅在首个编码字符串与对应的版本字符N之间设置长度字符L,以达到指示编码字符串的长度的作用。
进一步地,当编码字符串的长度为固定或不固定时,可以设置为添加L表示编码字符串的长度为固定,例如每个编码字符串都为300个码字;不添加L表示编码字符串的长度为不固定。
更进一步地,当编码字符串的长度变化较多,无法仅用一个字符表示不够全面时,所述长度字符与所述版本字符之间可以设置有所述编码字符串的长度。所述版本号可以采用数字、字母或其它符号表示,此时长度字符L可以视为长度的结束字符,用于表示版本字符与长度字符之间的信息为长度的相关内容。例如,当编码字符串的长度为999时,长度字符与所述版本字符之间可以添加999L。
在本发明实施例的另一具体实现中,可以仅设置前缀字符与长度字符,不设置版本字符,此时长度字符可以置于所述前缀字符与所述编码字符串之间。进一步地,所述长度字符与所述前缀字符之间还可以设置有所述编码字符串的长度。
本发明实施例在所述通用字符中选取所述基本字符、前缀字符和版本字符以外的通用字符作为长度字符,并且置于所述版本字符与所述编码字符串之间,使接收方可以根据接收到的编码字符串的长度分辨是否完整传输,提高传输的完整性。
图3是本发明实施例中一种编码装置的结构示意图。所述编码装置可以包括:获取模块31、构建模块32、编码模块33、版本放置模块34、第一长度放置模块35和第二长度放置模块36。
其中,所述获取模块31,适于根据用于传输待传输数据的多个通信***,获得所述多个通信***均能识别的通用字符。所述构建模块32,适于选取所述通用字符中的至少一部分作为基本字符,基于所述基本字符构建互不相同的码字,以得到码库,不同的码字对应于不同的字符。所述编码模块33,适于利用所述码库对所述待传输数据进行编码。所述版本放置模块34,适于在所述通用字符中选取所述基本字符和前缀字符以外的至少一个通用字符,以作为版本字符,并且所述版本字符置于所述前缀字符与所述编码字符串之间。所述第一长度放置模块35,适于在所述通用字符中选取所述基本字符、前缀字符和版本字符以外的至少一个通用字符,以作为长度字符,并且所述长度字符置于所述版本字符与所述编码字符串之间。所述第二长度放置模块36,适于在所述通用字符中选取所述基本字符和前缀字符以外的至少一个通用字符,以作为长度字符并且所述长度字符置于所述前缀字符与所述编码字符串之间。
进一步地,所述构建模块32可以包括:构建子模块(图未示),适于选取所述基本字符构成互不相同的码字,每个码字包括3个所述基本字符;其中,所述基本字符的总数大于等于41个。
参照图4,以下对编码模块33进行进一步说明,所述编码模块33可以包括:替代子模块331和前缀放置子模块332。其中,所述替代子模块331,适于将所述待传输数据中的字符替换为对应的码字,以生成一个或多个编码字符串。所述前缀放置子模块332,适于在所述通用字符中选取所述基本字符以外的至少一个通用字符作为前缀字符,并且置于每一所述编码字符串之前。
关于所述编码装置的更多详细内容请结合图1至图2并参照前文关于编码方法的相关描述,此处不再赘述。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于以计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。
Claims (16)
1.一种编码方法,其特征在于,包括以下步骤:
根据用于传输待传输数据的多个通信***,获取所述多个通信***均能识别的通用字符;
选取所述通用字符中的至少一部分作为基本字符,基于所述基本字符构建互不相同的码字,以得到码库,不同的码字对应于不同的字符;
利用所述码库对所述待传输数据进行编码;
其中,利用所述码库对所述待传输数据进行编码包括:
将所述待传输数据中的字符替换为对应的码字,以生成一个或多个编码字符串;
在所述通用字符中选取所述基本字符以外的至少一个通用字符作为前缀字符,并且置于每一所述编码字符串之前,进而在出现传输错误时,跳过错误的编码字符串,从下一个前缀字符的位置开始接收;
其中,所述方法还包括:
在所述通用字符中选取所述基本字符和前缀字符以外的至少一个通用字符,以作为版本字符,并且所述版本字符置于所述前缀字符与所述编码字符串之间;
所述版本字符与所述前缀字符之间设置有版本号;
其中,所述版本字符为所述版本号的结束字符。
2.根据权利要求1所述的编码方法,其特征在于,所述通用字符选自***数字和英文大小写字母。
3.根据权利要求1所述的编码方法,其特征在于,所述基于所述基本字符构建互不相同的码字包括:
选取所述基本字符构成互不相同的码字,每个码字包括3个所述基本字符;其中,所述基本字符的总数大于等于41个。
4.根据权利要求3所述的编码方法,其特征在于,所述基本字符包括:1、2、3、4、5、6、7、8、9、B、D、F、G、H、J、K、M、P、Q、U、V、W、X、Y、Z、b、d、f、g、h、j、k、m、p、q、u、v、w、x、y和z。
5.根据权利要求1所述的编码方法,其特征在于,还包括:
在所述通用字符中选取所述基本字符、前缀字符和版本字符以外的至少一个通用字符,以作为长度字符,并且所述长度字符置于所述版本字符与所述编码字符串之间。
6.根据权利要求5所述的编码方法,其特征在于,所述长度字符与所述版本字符之间设置有所述编码字符串的长度。
7.根据权利要求1所述的编码方法,其特征在于,还包括:
在所述通用字符中选取所述基本字符和前缀字符以外的至少一个通用字符,以作为长度字符,并且所述长度字符置于所述前缀字符与所述编码字符串之间。
8.根据权利要求7所述的编码方法,其特征在于,所述长度字符与所述前缀字符之间设置有所述编码字符串的长度。
9.一种编码装置,其特征在于,包括:
获取模块,适于根据用于传输待传输数据的多个通信***,获得所述多个通信***均能识别的通用字符;
构建模块,适于选取所述通用字符中的至少一部分作为基本字符,基于所述基本字符构建互不相同的码字,以得到码库,不同的码字对应于不同的字符;
编码模块,适于利用所述码库对所述待传输数据进行编码;
其中,所述编码模块包括:
替代子模块,适于将所述待传输数据中的字符替换为对应的码字,以生成一个或多个编码字符串;
前缀放置子模块,适于在所述通用字符中选取所述基本字符以外的至少一个通用字符作为前缀字符,并且置于每一所述编码字符串之前,进而在出现传输错误时,跳过错误的编码字符串,从下一个前缀字符的位置开始接收;
其中,所述装置还包括:
版本放置模块,适于在所述通用字符中选取所述基本字符和前缀字符以外的至少一个通用字符,以作为版本字符,并且所述版本字符置于所述前缀字符与所述编码字符串之间;
所述版本字符与所述前缀字符之间设置有版本号;
其中,所述版本字符为所述版本号的结束字符。
10.根据权利要求9所述的编码装置,其特征在于,所述通用字符选自***数字和英文大小写字母。
11.根据权利要求9所述的编码装置,其特征在于,所述构建模块包括:
构建子模块,适于选取所述基本字符构成互不相同的码字,每个码字包括3个所述基本字符;
其中,所述基本字符的总数大于等于41个。
12.根据权利要求11所述的编码装置,其特征在于,所述基本字符包括:1、2、3、4、5、6、7、8、9、B、D、F、G、H、J、K、M、P、Q、U、V、W、X、Y、Z、b、d、f、g、h、j、k、m、p、q、u、v、w、x、y和z。
13.根据权利要求9所述的编码装置,其特征在于,还包括:
第一长度放置模块,适于在所述通用字符中选取所述基本字符、前缀字符和版本字符以外的至少一个通用字符,以作为长度字符,并且所述长度字符置于所述版本字符与所述编码字符串之间。
14.根据权利要求13所述的编码装置,其特征在于,所述长度字符与所述版本字符之间设置有所述编码字符串的长度。
15.根据权利要求9所述的编码装置,其特征在于,还包括:
第二长度放置模块,适于在所述通用字符中选取所述基本字符和前缀字符以外的至少一个通用字符,以作为长度字符并且所述长度字符置于所述前缀字符与所述编码字符串之间。
16.根据权利要求15所述的编码装置,其特征在于,所述长度字符与所述前缀字符之间设置有所述编码字符串的长度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611073831.7A CN108123721B (zh) | 2016-11-29 | 2016-11-29 | 编码方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611073831.7A CN108123721B (zh) | 2016-11-29 | 2016-11-29 | 编码方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108123721A CN108123721A (zh) | 2018-06-05 |
CN108123721B true CN108123721B (zh) | 2022-01-11 |
Family
ID=62226847
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611073831.7A Active CN108123721B (zh) | 2016-11-29 | 2016-11-29 | 编码方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108123721B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110290146B (zh) * | 2019-07-03 | 2021-10-08 | 北京达佳互联信息技术有限公司 | 分享口令的生成方法、装置、服务器及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120030375A1 (en) * | 2010-07-29 | 2012-02-02 | Sap Ag | Codepage-independent binary encoding method |
CN103092922A (zh) * | 2012-12-28 | 2013-05-08 | 国家计算机网络与信息安全管理中心 | 一种针对含特殊字符的url编码后的自动解码方法 |
CN104156373A (zh) * | 2013-05-15 | 2014-11-19 | 宏碁股份有限公司 | 编码格式检测方法及装置 |
CN105450232A (zh) * | 2014-08-28 | 2016-03-30 | 华为技术有限公司 | 编码、解码方法以及编码装置和解码装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5523144B2 (ja) * | 2010-02-25 | 2014-06-18 | キヤノン株式会社 | 情報処理装置及びその制御方法及びプログラム及び記憶媒体 |
-
2016
- 2016-11-29 CN CN201611073831.7A patent/CN108123721B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120030375A1 (en) * | 2010-07-29 | 2012-02-02 | Sap Ag | Codepage-independent binary encoding method |
CN103092922A (zh) * | 2012-12-28 | 2013-05-08 | 国家计算机网络与信息安全管理中心 | 一种针对含特殊字符的url编码后的自动解码方法 |
CN104156373A (zh) * | 2013-05-15 | 2014-11-19 | 宏碁股份有限公司 | 编码格式检测方法及装置 |
CN105450232A (zh) * | 2014-08-28 | 2016-03-30 | 华为技术有限公司 | 编码、解码方法以及编码装置和解码装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108123721A (zh) | 2018-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2013139729A (ru) | Способы и устройство, использующие коды с fec с постоянной инактивацией символов для процессов кодирования и декодирования | |
US8904258B2 (en) | Modulation-forward error correction (MFEC) codes and methods of constructing and utilizing the same | |
US20100327066A1 (en) | Network based reliable decoding of bar codes | |
US11342945B2 (en) | Method and apparatus for processing rate matching of polar codes | |
CN108418683B (zh) | 一种基于汉字结构特征的无载体文本隐写方法 | |
CN105790853A (zh) | 一种声波传输字符数据的方法及装置 | |
CN103036641B (zh) | 数据交换方法、***及反序列化方法 | |
CN102137353A (zh) | 基于二维码的手机短信传输方式 | |
EP2482231A1 (en) | Method for encoding and decoding data on a matrix code symbol | |
US20090166439A1 (en) | Preamble Data Generating Method and Related Apparatus for Quick Response Code | |
CN101840394B (zh) | 数据解码方法 | |
CN105791527A (zh) | 一种移动终端通信录的传输方法及装置 | |
CN110995391A (zh) | 隔离网络中数据的传输方法、服务端及终端 | |
CN104065463B (zh) | 用于处理捎带的应答/非应答字段的方法和设备 | |
CN108123721B (zh) | 编码方法及装置 | |
JP5913748B2 (ja) | セキュアで損失のないデータ圧縮 | |
CN103365814B (zh) | 一种串行数据传输方法及其*** | |
CN100385887C (zh) | 数字数据的编码、传输和解码的方法和装置 | |
CN1321538C (zh) | 基于二维条形码识别技术的短信网址通信*** | |
CN1964200B (zh) | 一种线性码扩展编码及解码方法以及数据传输方法及装置 | |
CN111950233B (zh) | 扫码识别方法及装置、电子设备、可读存储介质 | |
CN107615839B (zh) | 处理子信令段的方法、处理装置、接入点和站点 | |
CN107276719B (zh) | 一种用于通信***的号码十进制数奇偶个数识别方法 | |
CN101352015A (zh) | 通过sms协议传送手写体 | |
US10742783B2 (en) | Data transmitting apparatus, data receiving apparatus and method thereof having encoding or decoding functionalities |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |