【技术实现步骤摘要】
一种字符串存储方法、装置及电子设备
本专利技术涉及字符编码
,特别是涉及一种字符串存储方法、装置及电子设备。
技术介绍
由于计算机中的信息存储、传输和加工是以二进制码(0和1)形式进行的,因此,在计算机技术中,在存储字符时,需要将字符编码成二进制表示的形式,进而存储该字符的二进制编码,即计算机在存储字符时,实际所存储的内容为该字符的二进制编码。当前,存在多种字符集,例如,ASCII(AmericanStandardCodeforInformationInterchange,美国信息互换标准代码)字符集、GB2312(信息交换用汉字编码)字符集、BIG5(大五码)字符集、Unicode(万国码)字符集等。其中,每个字符集根据对应的字符编码方式,定义了各个字符与二进制编码之间的一种对应关系。由于在计算机技术中使用字节作为计算存储容量的一种计量单位,因此,在当前的各种字符编码方式中,当一个字符所对应的二进制数值的位数不能占满至少一个字节中的全部位数时,会在该二进制数值的高位补零,从而将补零后得到的二进制数值作为该字符的二进制编码。显然,在对该字符的二进制编码进行存储时,会造成存储空间的浪费。以utf-8(8-bitUnicodeTransformationFormat)编码方式为例,该编码方式所得到的二进制编码是以8位为一个编码单位的可变长编码。例如,汉字“严”对应的unicode码是\u4e25,使用utf-8编码时,汉字“严”对应的二进制数值为100111000100101,由于10011
【技术保护点】
1.一种字符串存储方法,其特征在于,所述方法包括:/n获得待存储的字符串,其中,所述字符串是由多个字段下的字段值构成的;/n将所述字符串按照字段拆分为多个字符组;/n针对每个字符组,按照与该字符组所属字段对应的编码方式,对该字符组进行编码,得到该字符组的编码值;其中,每一字段值可控的字段对应的编码方式为:利用关于该字段的各个字段值与编码值的对应关系进行编码的方式;每一字段值的编码值是基于该字段值的预定数字编号生成的;/n将各个字符组的编码值进行组合,得到所述字符串的编码值;/n存储所述字符串的编码值。/n
【技术特征摘要】
1.一种字符串存储方法,其特征在于,所述方法包括:
获得待存储的字符串,其中,所述字符串是由多个字段下的字段值构成的;
将所述字符串按照字段拆分为多个字符组;
针对每个字符组,按照与该字符组所属字段对应的编码方式,对该字符组进行编码,得到该字符组的编码值;其中,每一字段值可控的字段对应的编码方式为:利用关于该字段的各个字段值与编码值的对应关系进行编码的方式;每一字段值的编码值是基于该字段值的预定数字编号生成的;
将各个字符组的编码值进行组合,得到所述字符串的编码值;
存储所述字符串的编码值。
2.根据权利要求1所述的方法,其特征在于,所述针对每个字符组,按照与该字符组所属字段对应的编码方式,对该字符组进行编码,得到该字符组的编码值的步骤,包括:
针对每个字符组,如果该字符组所属字段为字段值可控的类型,利用关于该字符组所属字段的各个字段值与编码值的对应关系,对该字符组进行编码,得到该字符组的编码值;如果该字符组所属字段为字段值不可控的类型,对该字符组中的各个字符进行逐字编码,得到该字符组的编码值。
3.根据权利要求1或2所述的方法,其特征在于,关于任一字段值可控的字段的各个字段值与编码值的对应关系的确定方式,包括:
为该字段值可控的字段的各个字段值分配一个数字编号;
基于该字段值可控的字段下的字段值的数量,确定该字段值可控的字段对应的字节数量;
针对该字段值可控的字段下的每个字段值,基于所确定的该字段值可控的字段对应的字节数量字节数量,对该字段值的数字编号进行二进制编码,得到该字段值的编码值。
4.根据权利要求1所述的方法,其特征在于,所述将各个字符组的编码值进行组合,得到所述字符串的编码值的步骤,包括:
判断所述各个字符组中是否存在位置连续的至少两个字符组所属字段均为字段值可控的类型;
如果存在,获得所述至少两个字符组中,每个字符组所属字段对应的最大位数;其中,任一字段对应的最大位数为:该字段的各个字段值的编码值中从高位起第一个1所在的位置至最低位的位数中的最大值;
计算所获得的每个字符组所属字段对应的最大位数的和值,并确定计算得到的和值所占用的目标字节数;
判断所述目标字节数是否小于所述至少两个字符组的编码值所占用字节的数量之和;
如果是,基于所述每个字符组所属字段对应的最大位数和所述目标字节数,利用位运算对所述至少两个字符组的编码值的编码值进行拼接,得到拼接结果;
将所述拼接结果和除所述至少两个字符组以外的字符组的编码值进行组合,得到所述字符串的编码值。
5.根据权利要求4所述的方法,其特征在于,所述基于所述每个字符组所属字段对应的最大位数和所述目标字节数,利用位运算对所述至少两个字符组的编码值的编码值进行拼接,得到拼接结果的步骤,包括:
针对所述至少两个字符组中每一个字符组,从该字符组的编码值的最低位开始,获取该字符组的编码值中目标数量个数字,作为待拼接数组,其中,任一字符组对应的目标数量为:该字符组所属字段对应的最大位数;
按照所述至少两个字符组的位置关系,利用位运算拼接所获取的每个待拼接数组,得到初始结果;
基于所述目标字节数,对所述初始结果进行二进制编码,得到拼接结果。
6.一种字符串存储装置,其特征在于,所述装置包括:
字符串获取模块,用于获得待存储的字符串,其中,所述字符串是由多个字段下的字段值构成的;
字符串拆分模块,用于将所述字符串按照字段拆分为多个字符组;
字符组编码模块,用于针对每个字符组,按照与该字符组所属字段对应的...
【专利技术属性】
技术研发人员:徐乾龙,
申请(专利权)人:杭州海康威视数字技术股份有限公司,
类型:发明
国别省市:浙江;33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。