CN105450232A - 编码、解码方法以及编码装置和解码装置 - Google Patents
编码、解码方法以及编码装置和解码装置 Download PDFInfo
- Publication number
- CN105450232A CN105450232A CN201410432775.6A CN201410432775A CN105450232A CN 105450232 A CN105450232 A CN 105450232A CN 201410432775 A CN201410432775 A CN 201410432775A CN 105450232 A CN105450232 A CN 105450232A
- Authority
- CN
- China
- Prior art keywords
- character
- data
- numeral
- coding
- scale
- 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.)
- Pending
Links
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
Abstract
本发明实施例提供一种编码、解码方法以及编码装置和解码装置,所述编码方法包括:获取待编码的数据,所述待编码的数据为二进制字符串;根据64进制编码规则对所述待编码的数据进行编码以得到所述待编码的数据对应的编码数据,所述编码数据为64进制的编码字符串,其中,所述64进制编码规则使用如下64个字符:0-9、、A-Z、_、a-z。所述编码方法在缩短待编码的数据的长度节约存储空间的基础上,由于本发明实施例中的编码方法采用的字符集中的所有字符均能在linux操作系统和windows操作系统下作为文件名使用,并且字符“”和“_”可以在shell、正则表达式中直接使用,且兼容常用语言C/C++/Java中的代码语句,具有更强的兼容性。
Description
技术领域
本发明实施例涉及数据通信技术,尤其涉及一种编码、解码方法以及编码装置和解码装置。
背景技术
在大数据场景中,诸如日志文本、K-means等应用均包含大量的字符型数字,字符型数字是指能够以文本的方式显示和打印的字符,并且以字符串的形式存储。字符型数字比数字型数字占用更多的存储空间,例如,10进制数字255,若以数字型数字存储,只需要1个字节,因为1个字节可以存储256个不同的状态(0~255)。若以字符型数字存储,需要3个字节,此时每个字节只用了10个状态(0-9),大量的状态被浪费掉了。
为了减少字符型数字的存储空间,现有技术中,通过增大数字的进制使每一个字符型数字能够存储更多的状态,从而减少字符型数字的存储空间。例如,存储64进制编码的字符型数字相对于存储10进制编码的字符型数字大约可以节约44.6%的存储空间,存储64进制编码的字符型数字相对于存储16进制编码的字符型数字大约可以节约1/3的存储空间。现有64进制编码方法使用的字符集为:A-Z、a-z、0-9、+、/,该字符集依次代表的ASCII码的值分别为0-25、26-51、52-61、62、63。
但是,现有技术中,字符“/”在linux操作系统和windows操作系统下不能作为文件名使用,字符“+”在shell中表示oneormore,必须经过转义才能作为普通字符使用。并且字符“/”和“+”在运算符中分别代表除号和加号,写成运算式时会产生歧义。例如,字符串“///”,可以理解为是一个使用64进制编码的64进制字符串,也可以理解为一个十进制算式:63/63。其中,这里的shell通常可以为称为壳,是指一种可以提供使用者使用界面的软件。
发明内容
本发明实施例提供一种编码、解码方法以及编码装置和解码装置,以解决现有技术中64进制编码方法的部分字符不能在linux操作系统和windows操作系统下作为文件名使用,以及在运算式中产生歧义的问题。
本发明第一方面提供一种编码方法,包括:
获取待编码的数据,所述待编码的数据为二进制字符串;
根据64进制编码规则对所述待编码的数据进行编码以得到所述待编码的数据对应的编码数据,所述编码数据为64进制的编码字符串,其中,所述64进制编码规则使用的字符集包括如下64个字符:0-9、、A-Z、_和a-z。
结合本发明第一方面,在本发明第一方面的第一种可能的实现方式中,所述字符集中的字符表示的数字的大小顺序与所述字符的美国标准交换信息代码ASCII码的大小顺序保持一致。
结合本发明第一方面的第一种可能的实现方式,在本发明第一方面的第二种可能的实现方式中,所述字符集中的字符的顺序从小到大依次为:0-9、、A-Z、_、a-z,其中,所述64进制编码字符0-9表示的数字为0-9,所述64进制编码字符表示的数字为10,所述64进制编码字符A-Z表示的数字为11-36,所述64进制编码字符_表示的数字为37,所述64进制编码字符a-z表示的数字为38-63。
结合本发明第一方面以及第一方面的第一种和第二种可能的实现方式,在本发明第一方面的第三种可能的实现方式中,所述64进制编码字符串具有起始字符,所述起始字符用于标识所述64进制编码字符串的起始位置。
本发明第二方面提供一种解码方法,包括:
获取待解码的数据,所述待解码的数据为64进制的编码字符串;
根据64进制解码规则对所述待解码的数据进行解码以得到所述待解码的数据的解码数据,所述解码数据为二进制字符串,其中,所述64进制解码规则使用的字符集包括如下64个字符:0-9、、A-Z、_和a-z。
本发明第三方面提供一种编码装置,包括:
获取模块,用于获取待编码的数据,所述待编码的数据为二进制字符串;
编码模块,用于根据64进制编码规则对所述待编码的数据进行编码以得到所述待编码的数据的编码数据,所述编码数据为64进制的编码字符串,其中,所述64进制编码规则使用的字符集包括如下64个字符:0-9、、A-Z、_、a-z。
结合本发明第三方面,在本发明第三方面的第一种可能的实现方式中,所述字符集中的字符表示的数字的大小顺序与所述字符的美国标准交换信息代码ASCII码的大小顺序保持一致。
结合本发明第三方面的第一种可能的实现方式,在本发明第三方面的第二种可能的实现方式中,所述字符集中的字符的顺序从小达到依次为:0-9、、A-Z、_、a-z,其中,所述64进制编码字符0-9表示的数字为0-9,所述64进制编码字符表示的数字为10,所述64进制编码字符A-Z表示的数字为11-36,所述64进制编码字符_表示的数字为37,所述64进制编码字符a-z表示的数字为38-63。
结合本发明第三方面以及第三方面的第一种和第二种可能的实现方式,在本发明第三方面的第三种可能的实现方式中,所述64进制编码字符串具有起始字符,所述起始字符用于标识所述64进制编码字符串的起始位置。
本发明第四方面提供一种解码装置,包括:
获取模块,用于获取待解码的数据,所述待解码的数据为64进制的编码字符串;
解码模块,用于根据64进制解码规则对所述待解码的数据进行编码以得到所述待解码的数据对应的解码数据,所述解码数据为二进制字符串,其中,所述64进制解码规则使用的字符集包括如下64个字符:0-9、、A-Z、_、a-z。
本发明第五方面提供一种编码装置,包括:
处理器、存储器和系统总线,所述处理器和所述存储器之间通过所述系统总线连接并完成相互间的通信;
所述存储器,用于存储计算机执行指令;
所述处理器,用于运行所述计算机执行指令,使所述编码装置执行如本发明第一方面以及第一方面的第一种至第三种可能的实现方式提供的任一所述的方法。
本发明第六方面提供一种解码装置,包括:
处理器、存储器和系统总线,所述处理器和所述存储器之间通过所述系统总线连接并完成相互间的通信;
所述存储器,用于存储计算机执行指令;
所述处理器,用于运行所述计算机执行指令,使所述解码装置执行本发明第二方面提供的方法。
本发明实施例提供的编码、解码方法以及编码装置和解码装置,所述编码装置通过获取待编码的数据,所述待编码的数据为二进制字符串;根据64进制编码规则对所述待编码的数据进行编码以得到所述待编码的数据对应的编码数据,所述编码数据为64进制的编码字符串,其中,所述64进制编码规则使用的字符集包括如下64个字符:0-9、、A-Z、_、a-z。所述编码方法通过对待编码的数据进行编码,以缩短待编码的数据的长度,从而节约存储空间,所述字符集的所有字符均能在linux和windows下作为文件名使用,并且字符“”和“_”不是算式运算符和逻辑运算符,在写成运算式时不会产生歧义,可以唯一的表示一个运算式。另外,字符“”和“_”可以在shell、正则表达式中直接使用,且兼容常用语言C/C++/Java中的代码语句。与现有的64进制编码方法相比,本发明实施例提供的编码方法应用范围更加广泛,具有更强的兼容性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍。
图1为本发明实施例一提供的编码方法的流程图;
图2为本发明实施例二提供的解码方法的流程图;
图3为本发明实施例三提供的编码装置的结构示意图;
图4为本发明实施例四提供的解码装置的结构示意图;
图5为本发明实施例五提供的编码装置的结构示意图;
图6为本发明实施例六提供的解码装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。
Base64编码是一种基于64个可打印字符来表示二进制数据的编码方法,由于2的6次方等于64,所以每6比特为一个单元,该单元对应一个可打印字符。使用Base64编码时每次读取三字节的数据进行编码,三字节共24比特,每6比特为一个单元,三字节的数据对应4个单元,将该三字节的数据采用Base64编码后得到编码数据为4个字符,即采用Base64编码时3字节的数据需要用4个可打印字符表示。在Base64编码中的可打印字符包括字母A-Z、a-z、数字0-9共62个字符,另外两个可打印字符在不同的系统中而不同,在Base64中另外两个可打印字符为运算符号“+”和“/”。
Base64编码有广泛的应用场景,在一种场景中,可以将Base64编码应用在超文本传输协议(Hypertexttransferprotocol,简称HTTP)环境中用来传递较长的标识信息。例如,在Java持久化系统Hibernate中,就采用了Base64编码将一个较长的唯一标识符编码为一个64进制的字符串。在其他应用程序中,也常常需要把二进制数据编码为适合放在统一资源定位符(UniversalResourceLocator,简称URL)中的形式。此时,采用Base64编码不仅使得编码数据比较简短,同时也使得编码数据不会被人眼直接识别。在另一种场景下,可以采用Base64编码对链接进行加密,以保障数据安全。或者,还可以使用Base64编码对多用途互联网邮件扩展(MultipurposeInternetMailExtensions,简称MIME)格式的邮件(email)进行编码,或使用Base64编码对对可扩展标记性语言(ExtensibleMarkupLanguage,简称XML)中的复杂数据进行编码并存储。在大数据环境中,可以使用Base64编码对需要以字符串形式存储的数据进行编码,例如对文件名或者日志内容等进行Base64编码。
然而,现有的Base64编码的字符集中,字符“/”在linux操作系统和windows操作系统下不能作为文件名使用,字符“+”在shell中表示oneormore,必须经过转义才能作为普通字符使用。因此现有的Base64编码方法具有一定的应用局限性。
本发明实施例提供的64进制编码采用的字符集与现有的Base64编码的字符集不同,能够提高64进制编码的应用范围,具有更好的兼容性。下面将对本发明实施例提供的编码方法、解码方法进行详细介绍。
图1为本发明实施例一提供的编码方法的流程图,本实施例的方法可以由编码装置执行,该编码装置集成在服务器或个人计算机(PersonalComputer简称PC)中,如图1所示,本实施例的方法可以包括以下步骤:
步骤101、获取待编码的数据,该待编码的数据为二进制字符串。
步骤102、根据64进制编码规则对该待编码的数据进行编码以得到该待编码的数据对应的编码数据,该编码数据为64进制的编码字符串,其中,64进制编码规则使用的字符集包括如下64个字符:0-9、、A-Z、_、a-z。
在计算机中所有的数据在存储和运算时都要使用二进制数表示,当数据为可显示的字符型数字时,计算机中存储的为数据对应的ASCII码。ASCII码使用指定的7位或8位二进制数组合来表示128种或256种可能的字符。以数字4095为例,当4095以数字型数字存储时,其对应的2进制字符串为111111111111,共12比特,需要两个字节。当4095以字符型数字存储时,若不对字符型数字进行编码,即直接以二进制方式存储,那么需要4个字节,即字符“4”、“0”、“9”、“5”分别占用一个字节,在计算机中存储时具体存储的是字符“4”、“0”、“9”、“5”对应的美国信息交换标准代码(AmericanStandardCodeforInformation,简称ASCII)。
字符型数字若以二进制方式存储,占用的存储空间大,为了减少字符型数字存储占用的空间,需要对字符型数字进行编码。本实施例的方法中可以对字符型数字进行64进制编码,然后,存储编码后的64进制的字符串对应的ASCII码值,编码后的64进制字符串占用的存储空间小于编码前占用的存储空间。例如,10进制数字4095,其对应的二进制字符串为111111111111,当用64进制编码时,将二进制字符串以6位划分,那么划分后的字符串为“111111/111111”,“111111”表示数字64,从64进制编码规则使用的字符集中选择代表数字64的字符作为64进制编码后的字符,若64进制编码规则中用字符“z”表示数字64,那么转换后的64进制编码字符串为zz。本实施例中,并不对64个字符表示的数字进行限制:即字符“0-9、、A-Z、_、a-z”可以对应“0-63”中任一个数字,每个字符只能唯一对应一个数字。通过上述例子可知,10进制数字4095以字符型数字存储时,若以二进制数据存储需要占用4个字节,若以64进制数据存储只需要两个字节,从而能够缩短字符串的长度,节约字符型数字的存储空间。
本实施例中的64进制编码规则使用的字符集和现有的64进制编码规则使用的字符集不同。本实施例的64进制编码规则使用的字符集满足如下三个条件:(1)可以在linux、windows下作为文件名使用;(2)不能是算术运算和逻辑运算符号;(3)shell、正则表达式中可直接使用,不与现有语法冲突,且兼容常用语言C/C++/Java中的代码语句。
根据上述三个条件从ASCII码的所有可见字符串中选取如下64个字符:0-9、、A-Z、_和a-z。而Base64使用的64个字符为:0-9、a-z、A-Z、+、/,本实施例中的64进制编码规则的字符集用字符“”和“_”代替了Base64中的字符“+”和“/”。本实施例中的字符“”和“_”在linux操作系统和windows操作系统下可以作为文件名使用。并且,字符“”和“_”不是算式运算符和逻辑运算符,在写成算数运算式时不会产生歧义,可以唯一的表示一个运算式。另外,字符“”和“_”不与现有语法冲突,在shell、正则表达式中可以使用,而不需要进行转换,且兼容常用编程语言C/C++和Java中的代码语句。
在本发明实施例中,采用64进制编码的字符集可以用做文件名且兼容shell。例如:mkdir_aS;ls|grep_3;find/-nameD_。采用64进制编码的字符集也可以直接写成运算式,例如,十进制运算式为:(127+1473)/40=40,其对应的64进制运算式为:(1_+M1)/c=c,该运算式的字符由16个字符缩短为11个字符。
本实施例中,使用64进制编码规则进行编码时,首先将3字节的待编码的数据依次读入一个24比特的缓冲区中,先放入缓冲区中的数据占高位,当待编码的数据不足3字节时,将缓冲区中剩下的比特位用0补足。然后,按照字符串的顺序从高位到低位每次从缓冲区中读出6比特的字符串,从64进制编码规则使用的字符集中选择该6比特字符串对应的64进制编码字符,将该6比特字符串对应的64进制编码字符作为该6比特字符串编码后的字符,依次对缓冲区中剩余的字节进行编码,直到全部待编码的数据编码完成。当待编码的数据的长度不是3字节的整数倍时,若最后剩下一字节的数据,那么在编码数据后加1个“=”;若最后剩下两字节的数据,那么在编码数据后加2个“=”;若没有剩下任何数据,那么什么都不加,这样做的目的是为了保证数据解码的正确性。
类似于8进制的起始标记“0”和16进制的起始标记“0x”,本实施例中,64进制编码字符串也具有起始字符,该起始字符用于标识64进制编码字符串的起始位置。例如,用于字符“_”表示64进制编码字符串的起始字符,则从“_”之后的第一个字符起,一直到第一个非64进制编码字符为止,之间的数字被解码装置认作一个64进制数。在标准输入输出格式中,类似于8进制的“%o”和16进制的“%x”,用“%_”表示输入或输出一个64进制字符串,也可以通过sprintf函数用“%s”把64进制数输出为字符串。
本实施例,通过将待编码的数据用64进制编码,以缩短待编码的数据的长度,从而节约存储空间,本实施例的64进制编码所选用的所有字符均能在linux操作系统和windows操作系统下作为文件名使用,并且字符“”和“_”不是算式运算符和逻辑运算符,在写成运算式时不会产生歧义,可以唯一的表示一个运算式。另外,字符“”和“_”可以在shell、正则表达式中直接使用,不与现有语法冲突,且兼容常用语言C/C++/Java中的代码语句。与现有的64进制编码方法相比,本发明实施例提供的编码方法应用范围更加广泛,具有更强的兼容性
本实施例的编码方法可以应用在服务器中,或者PC机中,在服务器或PC机中的编码装置对待编码的数据编码后,服务器或PC机可以将编码数据发送给其他设备,例如,当该64进制编码方法作为电子邮件的传输编码方式时,服务器或PC机会将编码数据发送给邮件接收者的终端。或者,服务器或PC机对编码数据进行存储,在对编码数据进行存储时,实际存储的是编码后的64进制的编码字符串对应的ASCII码值,例如,编码后的64进制的编码字符串为ABCD,那么在存储时,分别存储64进制字符“A”“B”“C”“D”对应的ASCII码值。
本实施例的编码方法适用于大数据场景,在大数据场景下诸如日志文本、K-means等一些应用内容均可能包含大量的字符型数字,需要采用64进制编码方法进行编码。但是,在大数据场景下不仅要考虑存储空间的问题,而且要考虑大数据的排序性能问题。Base64编码所使用的字符集中各字符表示的数字大小顺序与ASCII码值的顺序不一致,在大数据排序时不能直接使用ASCII码值进行比较,而是先将64进制编码字符串转换为对应的十进制数字,然后比较两个十进制数字的大小,从而影响大数据排序性能。表1为现有的Base64编码方法的字符与ASCII码值和表示的数字的关系:
表1
64进制编码的字符 | A-Z | a-z | 0-9 | + | / |
ASCII码 | 65-90 | 97-122 | 48-57 | 43 | 47 |
表示的数字 | 0-25 | 26-51 | 52-61 | 62 | 63 |
例如,当要比较字符型数字A和0的大小时,字符A表示的数字为十进制数字0,字符0表示的数字为十进制数字52,因此,字符A小于字符0。若直接用ASCII码值比较,字符A的ASCII码为65,字符0的ASCII码为48,字符A的ASCII码大于字符0的ASCII码,结果显然不正确。现有技术中两个64进制字符串比较时,需要将64进制字符串先转换为对应的十进制数字,采用十进制数字进行比较,由于64进制字符转换为十进制数字占用的开销大,因此,大大将降低了大数据排序性能。
针对大数据排序的性能问题,本发明实施例的编码方法中设置64进制编码规则所使用的字符集中的字符表示的数字的大小顺序与ASCII码值的顺序保持一致,如表2所示,字符集中的字符的顺序从小达到依次为:0-9、、A-Z、_、a-z,64进制编码字符0-9表示的数字为0-9,64进制编码字符表示的数字为10,64进制编码字符A-Z表示的数字为11-36,64进制编码字符_表示的数字为37,64进制编码字符a-z表示的数字为38-63。从表2中可以清楚的看到,64进制编码字符表示的数字依次递增,其对应的ASCII码值也是依次递增的,因此,在大数据排序时,可以直接使用64进制编码字符的ASCII码值比较。例如,64进制字符串“8Fs”和“_u0I”,两个字符串的位数相同,可以只需要比较两个字符串的第一个字符的ASCII的大小,字符“”的ASCII码64,字符“_”的ASCII码为95,字符“”的ASCII码小于字符“_”的ASCII码为95,因此,字符串“8Fs”小于字符串“_u0I。若采用现有Base64编码方法,先将字符“”转换为对应的数字10,将字符“_”转换为对应的数字37,由于数字10小于数字37,因此,字符“”小于字符“_”,通过比较可知直接采用ASCII码值进行比较的比较结果与将ASCII码值转换为对应数字进行比较的结果相同。
表2
64进制编码的字符 | 0-9 | A-Z | _ | a-z | |
ASCII码 | 48-57 | 64 | 65-90 | 95 | 47 |
代表的值 | 0-9 | 10 | 11-36 | 37 | 97-122 |
本实施例中,通过设置64进制编码规则使用的字符集中的字符表示的数字的大小顺序与ASCII码顺序保持一致,因此,能够直接使用64进制字符串的ASCII值进行比较,降低了大数据排序的开销。
图2为本发明实施例二提供的解码方法的流程图,本实施例的方法可以由解码装置执行,该解码装置集成在服务器或PC机中,如图2所示,本实施例提供的方法可以包括以下步骤:
步骤201、获取待解码的数据,该待解码的数据为64进制的编码字符串。
步骤202、根据64进制解码规则对该待解码的数据进行解码以得到该待解码的数据对应的解码数据,该解码数据为二进制字符串,其中,该64进制解码规则使用的字符集包括如下64个字符:0-9、、A-Z、_、a-z。
本实施例的解码方法是实施例一的编码方法的逆过程,即将64进制字符串转换为二进制字符串。具体地,将64进制字符串的每一个字符转换为对应的二进制字符串,然后,将每个字符对应的二进制字符串顺序连接得到该64进制字符串对应的二进制字符串。例如,64进制字符串zz,字符z转换为二进制字符串为111111,那么64进制字符串zz对应的二进制字符串为11111111111,二进制字符串对应的十进制数字为4095。
图3为本发明实施例三提供的编码装置的结构示意图,如图3所示,本实施例的编码装置包括:获取模块11和编码模块12。
其中,获取模块11,用于获取待编码的数据,所述待编码的数据为二进制字符串;
编码模块12,用于根据64进制编码规则对所述待编码的数据进行编码以得到所述待编码的数据的编码数据,所述编码数据为64进制的编码字符串,其中,所述64进制编码规则使用的字符集包括如下64个字符:0-9、、A-Z、_、a-z。
可选地,本实施例中,所述字符集中的字符表示的数字的大小顺序与所述字符的美国标准交换信息代码ASCII码的大小顺序保持一致。
可选地,所述字符集中的字符的顺序从小达到依次为:0-9、、A-Z、_、a-z,其中,所述64进制编码字符0-9表示的数字为0-9,所述64进制编码字符表示的数字为10,所述64进制编码字符A-Z表示的数字为11-36,所述64进制编码字符_表示的数字为37,所述64进制编码字符a-z表示的数字为38-63。
本实施例中,所述64进制编码字符串具有起始字符,所述起始字符用于标识所述64进制编码字符串的起始位置。
本实施例的编码装置,可用于执行实施例一提供的编码方法,其实现原理和技术效果类似,这里不再赘述。
图4为本发明实施例四提供的解码装置的结构示意图,如图4所示,本实施例的解码装置包括:获取模块21和解码模块22。
其中,获取模块,用于获取待解码的数据,所述待解码的数据为64进制的编码字符串;
解码模块,用于根据64进制解码规则对所述待解码的数据进行编码以得到所述待解码的数据对应的解码数据,所述解码数据为二进制字符串,其中,所述64进制解码规则使用的字符集包括如下64个字符:0-9、、A-Z、_、a-z。
本实施例的解码装置,可用于执行实施例二提供的解码方法,其实现原理和技术效果类似,这里不再赘述。
图5为本发明实施例五提供的编码装置的结构示意图,如图5所示,本实施例的编码装置300包括:处理器31、存储器32和系统总线33,所述处理器31和所述存储器32之间通过所述系统总线33连接并完成相互间的通信;所述存储器32,用于存储计算机执行指令321;所述处理器31,用于运行所述计算机执行指令321,以执行如下所述的方法:
获取待编码的数据,所述待编码的数据为二进制字符串;
根据64进制编码规则对所述待编码的数据进行编码以得到所述待编码的数据对应的编码数据,所述编码数据为64进制的编码字符串,其中,所述64进制编码规则使用的字符集包括如下64个字符:0-9、、A-Z、_和a-z。
可选地,所述字符集中的字符表示的数字的大小顺序与所述字符的美国标准交换信息代码ASCII码的大小顺序保持一致。
可选地,所述字符集中的字符的顺序从小到大依次为:0-9、、A-Z、_、a-z,其中,所述64进制编码字符0-9表示的数字为0-9,所述64进制编码字符表示的数字为10,所述64进制编码字符A-Z表示的数字为11-36,所述64进制编码字符_表示的数字为37,所述64进制编码字符a-z表示的数字为38-63。
本实施例中,所述64进制编码字符串具有起始字符,所述起始字符用于标识所述64进制编码字符串的起始位置。
本实施例的编码装置,可用于执行实施例一提供的编码方法,其实现原理和技术效果类似,这里不再赘述。
图6为本发明实施例六提供的解码装置的结构示意图,如图6所示,本实施例的解码装置400包括:处理器41、存储器42和系统总线43,所述处理器41和所述存储器42之间通过所述系统总线43连接并完成相互间的通信;所述存储器42,用于存储计算机执行指令421;所述处理器41,用于运行所述计算机执行指令421,以执行如下所述的方法:
获取待解码的数据,所述待解码的数据为64进制的编码字符串;
根据64进制解码规则对所述待解码的数据进行解码以得到所述待解码的数据的解码数据,所述解码数据为二进制字符串,其中,所述64进制解码规则使用的字符集包括如下64个字符:0-9、、A-Z、_和a-z。
本实施例的解码装置,可用于执行实施例二提供的解码方法,其实现原理和技术效果类似,这里不再赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,本申请所提供的实施例仅仅是示意性的。例如,上述实施例中各部件的划分,实际实现时还可以有另外的划分方式。例如多个模块或组件可以结合或者可以集成到另一个设备中,或一些特征可以忽略,或不执行。另外,所显示或讨论的部件相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口、模块的间接耦合或通信连接,可以包括电性连接、机械连接或其它的连接形式。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。在本发明实施例、权利要求以及附图中揭示的特征可以独立存在也可以组合存在。在本发明实施例中以硬件形式描述的特征可以通过软件来执行,反之亦然。在此不做限定。
Claims (12)
1.一种编码方法,其特征在于,包括:
获取待编码的数据,所述待编码的数据为二进制字符串;
根据64进制编码规则对所述待编码的数据进行编码以得到所述待编码的数据对应的编码数据,所述编码数据为64进制的编码字符串,其中,所述64进制编码规则使用的字符集包括如下64个字符:0-9、、A-Z、_和a-z。
2.根据权利要求1所述的方法,其特征在于,所述字符集中的字符表示的数字的大小顺序与所述字符的美国标准交换信息代码ASCII码的大小顺序保持一致。
3.根据权利要求2所述的方法,其特征在于,所述字符集中的字符的顺序从小到大依次为:0-9、、A-Z、_、a-z,其中,所述64进制编码字符0-9表示的数字为0-9,所述64进制编码字符表示的数字为10,所述64进制编码字符A-Z表示的数字为11-36,所述64进制编码字符_表示的数字为37,所述64进制编码字符a-z表示的数字为38-63。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述64进制编码字符串具有起始字符,所述起始字符用于标识所述64进制编码字符串的起始位置。
5.一种解码方法,其特征在于,包括:
获取待解码的数据,所述待解码的数据为64进制的编码字符串;
根据64进制解码规则对所述待解码的数据进行解码以得到所述待解码的数据的解码数据,所述解码数据为二进制字符串,其中,所述64进制解码规则使用的字符集包括如下64个字符:0-9、、A-Z、_和a-z。
6.一种编码装置,其特征在于,包括:
获取模块,用于获取待编码的数据,所述待编码的数据为二进制字符串;
编码模块,用于根据64进制编码规则对所述待编码的数据进行编码以得到所述待编码的数据的编码数据,所述编码数据为64进制的编码字符串,其中,所述64进制编码规则使用的字符集包括如下64个字符:0-9、、A-Z、_、a-z。
7.根据权利要求6所述的编码装置,其特征在于,所述字符集中的字符表示的数字的大小顺序与所述字符的美国标准交换信息代码ASCII码的大小顺序保持一致。
8.根据权利要求7所述的编码装置,其特征在于,所述字符集中的字符的顺序从小达到依次为:0-9、、A-Z、_、a-z,其中,所述64进制编码字符0-9表示的数字为0-9,所述64进制编码字符表示的数字为10,所述64进制编码字符A-Z表示的数字为11-36,所述64进制编码字符_表示的数字为37,所述64进制编码字符a-z表示的数字为38-63。
9.根据权利要求6-8中任一项所述的编码装置,其特征在于,所述64进制编码字符串具有起始字符,所述起始字符用于标识所述64进制编码字符串的起始位置。
10.一种解码装置,其特征在于,包括:
获取模块,用于获取待解码的数据,所述待解码的数据为64进制的编码字符串;
解码模块,用于根据64进制解码规则对所述待解码的数据进行编码以得到所述待解码的数据对应的解码数据,所述解码数据为二进制字符串,其中,所述64进制解码规则使用的字符集包括如下64个字符:0-9、、A-Z、_、a-z。
11.一种编码装置,其特征在于,包括:
处理器、存储器和系统总线,所述处理器和所述存储器之间通过所述系统总线连接并完成相互间的通信;
所述存储器,用于存储计算机执行指令;
所述处理器,用于运行所述计算机执行指令,使所述编码装置执行如权利要求1-4任一所述的方法。
12.一种解码装置,其特征在于,包括:
处理器、存储器和系统总线,所述处理器和所述存储器之间通过所述系统总线连接并完成相互间的通信;
所述存储器,用于存储计算机执行指令;
所述处理器,用于运行所述计算机执行指令,使所述解码装置执行如权利要求5所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410432775.6A CN105450232A (zh) | 2014-08-28 | 2014-08-28 | 编码、解码方法以及编码装置和解码装置 |
PCT/CN2015/087239 WO2016029801A1 (zh) | 2014-08-28 | 2015-08-17 | 编码、解码方法以及编码装置和解码装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410432775.6A CN105450232A (zh) | 2014-08-28 | 2014-08-28 | 编码、解码方法以及编码装置和解码装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105450232A true CN105450232A (zh) | 2016-03-30 |
Family
ID=55398744
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410432775.6A Pending CN105450232A (zh) | 2014-08-28 | 2014-08-28 | 编码、解码方法以及编码装置和解码装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN105450232A (zh) |
WO (1) | WO2016029801A1 (zh) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105721882A (zh) * | 2016-04-18 | 2016-06-29 | 上海泥娃通信科技有限公司 | 一种分离编解码的方法和系统 |
CN105975607A (zh) * | 2016-05-16 | 2016-09-28 | 乐视控股(北京)有限公司 | 一种图片存储及读取方法、图片存取系统 |
CN106445890A (zh) * | 2016-07-07 | 2017-02-22 | 湖南千年华光软件开发有限公司 | 数据处理方法 |
CN108123721A (zh) * | 2016-11-29 | 2018-06-05 | 展讯通信(上海)有限公司 | 编码方法及装置 |
CN109213973A (zh) * | 2018-07-04 | 2019-01-15 | 珠海市特车网络科技有限公司 | Vin码转码存储方法及装置和对应的读取方法及装置 |
CN109446488A (zh) * | 2018-08-21 | 2019-03-08 | 深圳市华力特电气有限公司 | 一种数据处理方法和装置 |
CN109617680A (zh) * | 2018-12-06 | 2019-04-12 | 中国移动通信集团福建有限公司 | 加密方法、装置、设备及介质 |
CN110569487A (zh) * | 2019-08-19 | 2019-12-13 | 积成电子股份有限公司 | 一种基于高频率字符替代算法的Base64扩展编码方法及系统 |
CN110958024A (zh) * | 2019-12-13 | 2020-04-03 | 深圳市道通智能航空技术有限公司 | 一种串口数据编码方法、装置、嵌入式设备及通信系统 |
CN111428442A (zh) * | 2020-03-25 | 2020-07-17 | 北京思特奇信息技术股份有限公司 | 一种无需字典表的数据转换方法、系统及存储介质 |
CN111666737A (zh) * | 2020-06-04 | 2020-09-15 | 广州博高信息科技有限公司 | 区域图书馆多编码规则兼容处理方法、装置、设备及介质 |
CN111832067A (zh) * | 2020-05-26 | 2020-10-27 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置和用于数据处理的装置 |
CN111988297A (zh) * | 2020-08-13 | 2020-11-24 | 北京诚志重科海图科技有限公司 | 一种文字通信保密传输明密转换系统 |
CN112016270A (zh) * | 2020-09-08 | 2020-12-01 | 中国物品编码中心 | 汉信码的物流信息编码方法、装置及设备 |
CN112818639A (zh) * | 2020-12-30 | 2021-05-18 | 平安普惠企业管理有限公司 | 数据编码方法、装置、计算机设备和存储介质 |
CN114615074A (zh) * | 2022-03-25 | 2022-06-10 | 山石网科通信技术股份有限公司 | 网络报文解码方法及网络攻击检测方法、装置和存储介质 |
CN115333735A (zh) * | 2022-10-11 | 2022-11-11 | 浙江御安信息技术有限公司 | 一种数据的安全传输方法 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106789898B (zh) * | 2016-11-18 | 2020-01-07 | 杭州塔网科技有限公司 | 远程数据传输终端、系统及其编码、解码方法 |
CN109871520B (zh) * | 2019-02-28 | 2023-05-26 | 魏勇 | 一种适用于http内容内嵌的二进制数据编解码方法 |
CN110070162B (zh) * | 2019-03-11 | 2022-07-26 | 上海因致信息科技有限公司 | 条形码中待填充数据的编码方法及系统 |
CN110503174B (zh) * | 2019-08-28 | 2023-08-15 | 苏州儒拉玛特智芸科技有限公司 | 一种产品信息的标记及识别方法、装置、存储介质 |
CN111131403A (zh) * | 2019-12-06 | 2020-05-08 | 深圳猛犸电动科技有限公司 | 一种物联网设备的消息编解码方法及装置 |
CN111211887B (zh) * | 2019-12-23 | 2022-11-29 | 中移(杭州)信息技术有限公司 | 资源加密方法、系统、装置及计算机可读存储介质 |
CN111222306A (zh) * | 2020-01-06 | 2020-06-02 | 广州虎牙科技有限公司 | 数据处理方法和装置、电子设备和存储介质 |
CN114758728B (zh) * | 2022-06-15 | 2022-09-02 | 成都边界元科技有限公司 | 混合进制下产生最小海明距离的基因型标识及可视化方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1937582A (zh) * | 2006-08-11 | 2007-03-28 | 白杰 | 待压缩数据的预处理方法以及压缩数据的传输方法 |
CN101388767A (zh) * | 2008-10-14 | 2009-03-18 | 苏盛辉 | 基于轻量级数字签名方案的证书防伪方法 |
CN101414908A (zh) * | 2008-12-04 | 2009-04-22 | 苏盛辉 | 基于公钥体制的符号化印章方法 |
CN101976241A (zh) * | 2010-09-26 | 2011-02-16 | 用友软件股份有限公司 | 识别码生成方法和系统 |
US8368567B2 (en) * | 2010-07-29 | 2013-02-05 | Sap Ag | Codepage-independent binary encoding method |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100547133B1 (ko) * | 2003-07-11 | 2006-01-26 | 삼성전자주식회사 | 이종 단말들의 애드-혹 망을 구축하는 장치 및 방법 |
CN103051480B (zh) * | 2012-12-25 | 2015-09-30 | 华为技术有限公司 | 一种dn的存储方法及dn存储装置 |
-
2014
- 2014-08-28 CN CN201410432775.6A patent/CN105450232A/zh active Pending
-
2015
- 2015-08-17 WO PCT/CN2015/087239 patent/WO2016029801A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1937582A (zh) * | 2006-08-11 | 2007-03-28 | 白杰 | 待压缩数据的预处理方法以及压缩数据的传输方法 |
CN101388767A (zh) * | 2008-10-14 | 2009-03-18 | 苏盛辉 | 基于轻量级数字签名方案的证书防伪方法 |
CN101414908A (zh) * | 2008-12-04 | 2009-04-22 | 苏盛辉 | 基于公钥体制的符号化印章方法 |
US8368567B2 (en) * | 2010-07-29 | 2013-02-05 | Sap Ag | Codepage-independent binary encoding method |
CN101976241A (zh) * | 2010-09-26 | 2011-02-16 | 用友软件股份有限公司 | 识别码生成方法和系统 |
Cited By (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105721882A (zh) * | 2016-04-18 | 2016-06-29 | 上海泥娃通信科技有限公司 | 一种分离编解码的方法和系统 |
CN105975607A (zh) * | 2016-05-16 | 2016-09-28 | 乐视控股(北京)有限公司 | 一种图片存储及读取方法、图片存取系统 |
CN106445890A (zh) * | 2016-07-07 | 2017-02-22 | 湖南千年华光软件开发有限公司 | 数据处理方法 |
CN108123721A (zh) * | 2016-11-29 | 2018-06-05 | 展讯通信(上海)有限公司 | 编码方法及装置 |
CN108123721B (zh) * | 2016-11-29 | 2022-01-11 | 展讯通信(上海)有限公司 | 编码方法及装置 |
CN109213973A (zh) * | 2018-07-04 | 2019-01-15 | 珠海市特车网络科技有限公司 | Vin码转码存储方法及装置和对应的读取方法及装置 |
CN109213973B (zh) * | 2018-07-04 | 2023-05-16 | 珠海市特车网络科技有限公司 | Vin码转码存储方法及装置和对应的读取方法及装置 |
CN109446488A (zh) * | 2018-08-21 | 2019-03-08 | 深圳市华力特电气有限公司 | 一种数据处理方法和装置 |
CN109617680A (zh) * | 2018-12-06 | 2019-04-12 | 中国移动通信集团福建有限公司 | 加密方法、装置、设备及介质 |
CN110569487A (zh) * | 2019-08-19 | 2019-12-13 | 积成电子股份有限公司 | 一种基于高频率字符替代算法的Base64扩展编码方法及系统 |
CN110958024A (zh) * | 2019-12-13 | 2020-04-03 | 深圳市道通智能航空技术有限公司 | 一种串口数据编码方法、装置、嵌入式设备及通信系统 |
CN110958024B (zh) * | 2019-12-13 | 2024-01-19 | 深圳市道通智能航空技术股份有限公司 | 一种串口数据编码方法、装置、嵌入式设备及通信系统 |
CN111428442A (zh) * | 2020-03-25 | 2020-07-17 | 北京思特奇信息技术股份有限公司 | 一种无需字典表的数据转换方法、系统及存储介质 |
CN111428442B (zh) * | 2020-03-25 | 2023-04-21 | 北京思特奇信息技术股份有限公司 | 一种无需字典表的数据转换方法、系统及存储介质 |
CN111832067A (zh) * | 2020-05-26 | 2020-10-27 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置和用于数据处理的装置 |
CN111832067B (zh) * | 2020-05-26 | 2021-12-17 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置和用于数据处理的装置 |
CN111666737A (zh) * | 2020-06-04 | 2020-09-15 | 广州博高信息科技有限公司 | 区域图书馆多编码规则兼容处理方法、装置、设备及介质 |
CN111666737B (zh) * | 2020-06-04 | 2023-04-25 | 广州博高信息科技有限公司 | 区域图书馆多编码规则兼容处理方法、装置、设备及介质 |
CN111988297A (zh) * | 2020-08-13 | 2020-11-24 | 北京诚志重科海图科技有限公司 | 一种文字通信保密传输明密转换系统 |
CN111988297B (zh) * | 2020-08-13 | 2022-09-13 | 北京诚志重科海图科技有限公司 | 一种文字通信保密传输明密转换系统 |
CN112016270A (zh) * | 2020-09-08 | 2020-12-01 | 中国物品编码中心 | 汉信码的物流信息编码方法、装置及设备 |
CN112016270B (zh) * | 2020-09-08 | 2024-04-02 | 中国物品编码中心 | 汉信码的物流信息编码方法、装置及设备 |
CN112818639A (zh) * | 2020-12-30 | 2021-05-18 | 平安普惠企业管理有限公司 | 数据编码方法、装置、计算机设备和存储介质 |
CN114615074A (zh) * | 2022-03-25 | 2022-06-10 | 山石网科通信技术股份有限公司 | 网络报文解码方法及网络攻击检测方法、装置和存储介质 |
CN115333735A (zh) * | 2022-10-11 | 2022-11-11 | 浙江御安信息技术有限公司 | 一种数据的安全传输方法 |
CN115333735B (zh) * | 2022-10-11 | 2023-03-14 | 浙江御安信息技术有限公司 | 一种数据的安全传输方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2016029801A1 (zh) | 2016-03-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105450232A (zh) | 编码、解码方法以及编码装置和解码装置 | |
US8346737B2 (en) | Encoding of hierarchically organized data for efficient storage and processing | |
CN100495318C (zh) | 整型数据的压缩方法、装置及解压缩方法、装置 | |
KR102249267B1 (ko) | 2진 데이터를 인코딩 및 디코딩하기 위한 방법 및 디바이스 | |
US7738717B1 (en) | Systems and methods for optimizing bit utilization in data encoding | |
US11178212B2 (en) | Compressing and transmitting structured information | |
CN102750268A (zh) | 一种对象序列化方法、对象反序列化方法、装置及系统 | |
CN101526963A (zh) | 网页编码识别方法、装置和终端设备 | |
CN111131403A (zh) | 一种物联网设备的消息编解码方法及装置 | |
EP2219117A1 (en) | A processing module, a device, and a method for processing of XML data | |
WO2008156640A2 (en) | A method and apparatus for encoding data | |
JP5551660B2 (ja) | テキストをマトリクスコードシンボルに符号化するコンピュータ実行方法、マトリクスコードシンボルを復号化するコンピュータ実行方法、テキストをマトリクスコードシンボルに符号化するためのエンコーダ、およびマトリクスコードシンボルを復号化するためのデコーダ | |
US20160335255A1 (en) | Innovative method for text encodation in quick response code | |
CN108415894B (zh) | 报表数据初始化方法、装置、计算机设备及存储介质 | |
CN113905093A (zh) | 序列化、反序列化方法、装置及电子设备 | |
US9235610B2 (en) | Short string compression | |
JP4821287B2 (ja) | 構造化文書の符号化方法、符号化装置、符号化プログラム、復号装置及び符号化された構造化文書のデータ構造 | |
CN111064560B (zh) | 数据加密传输方法及装置、终端、数据加密传输系统 | |
CN115001628B (zh) | 数据编码的方法及装置、数据解码的方法及装置和数据结构 | |
CN113283215B (zh) | 一种基于utf-32编码的数据混淆方法及装置 | |
TW201909610A (zh) | 資料發送裝置、資料接收裝置及其方法 | |
CN116303717A (zh) | 一种数据采集格式协议转换方法及装置 | |
JP2003513313A (ja) | 可変長復号 | |
CN116634039A (zh) | 一种基于tcp传输的应用层协议的编码和解码方法及系统 | |
CN115293105A (zh) | 字符编译方法及装置、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160330 |
|
RJ01 | Rejection of invention patent application after publication |