一种二维码内容转为纯数字符号编码的方法与流程

文档序号:12803486阅读:17477来源:国知局
本发明涉及二维码领域,尤其是二维码内容转换为数字符号编码的方法。
背景技术
:随着科学技术的发展,迫切需要条形码在有限的空间内表达更多的信息,以满足各种信息传递的需求,二维码应运而生。二维码技术利用特定的几何图形按照一定的规律在二维方向上排布形成特殊的图形标识,以实现信息的传递。二维码是基于一维条码和图像处理技术发展起来的大容量二维码,二维码内容可以存放各种字符和数据,如图片、视频等。随着智能手持终端的兴起,二维码近些年来得到了广泛的应用,如url连接、存放验证信息、用于食品安全追溯等。在众多的二维码应用中,有一类应用是在二维码内部存放二进制的数据,有的是格式需要,如数字证书、图片;有的是存放加密数据的结果。而这种二进制的数据,我们一般的扫描终端扫描时,有可能引起扫描软件崩溃,即使扫描解码成功显示,也是一些混乱的不可识别字符,显示界面很不友好。技术实现要素:针对上述问题中存在的不足之处,本发明提供了一种二维码内容转为纯数字符号编码的方法,有效解决了扫描软件崩溃或显示不友好的问题。为实现上述目的,本发明提出的技术方案如下:步骤(a),将要编码到二维码中的二进制的数据保存为字节数组。步骤(b),以两个字节为一组进行划分,若最后剩余一字节,则最后一字节为单独一组。步骤(c),依据步骤(b)的分组,将每一组中的低地址字节默认为数字的高位值字节,将每一组中的高地址字节默认为数字的低位数值字节,将每一组字节转为十进制阿拉伯数字。其中,对于两字节一组的,转换结果标准为5位十进制阿拉伯数字;对于只有一个字节的组,转为3位十进制阿拉伯数字。步骤(d),将步骤(c)的结果拼成一串阿拉伯字符。步骤(e),转换结束。进一步的,在步骤(c)中,对于两字节一组的,转换结果标准为5位十进制阿拉伯数字;对于只有一个字节的组,转为3位十进制阿拉伯数字。进一步的,所述步骤(c)可替换为:将每一组中的低地址字节默认为数字的低位值字节,将每一组中的高地址字节默认为数字的高位数值字节,将每一组字节转为十进制阿拉伯数字。二维码解码时的处理流程,如果是普通软件扫描则使用的是标准解码流程,解码结果为一串阿拉伯数字。如果是专用软件解码,要使用二维码存储的二进制数据,则必须先复原二进制数据。复原步骤如下:第一步,将阿拉伯字符串以5个数字为一组进行分组,如果最后一组有3个数字,则单独为一组。第二步,若一组数字为5位,则将该组数字,对256求余,得到数值存放的低字节;对除以256得到的数值存放为高字节。若一组数字为3位,则直接存入一个字节。第三步,将第二步生成的字节连接到一个大字节数组。第四步,信息回复完成。根据发明的另一方面,编码流程第三步的高低字节处理方式,也可以反过来,即将每一组中的低地址字节默认为数字的低位值字节,将每一组中的高地址字节默认为数字的高位数值字节,将每一组字节转为十进制阿拉伯数字,只需要在编码和解码时处理方式匹配即可。根据发明的另一方面,还提供一种将纯数字符号编码转换为二维码内容的方法,包括:步骤(a),将阿拉伯字符串以5个数字为一组进行分组,如果最后一组有3个数字,则单独为一组;步骤(b),若一组数字为5位,则将该组数字,对256求余,得到数值存放的低字节;对除以256得到的数值存放为高字节,若一组数字为3位,则直接存入一个字节;步骤(c),将步骤(b)生成的字节连接到一个大字节数组;步骤(d),信息回复完成。进一步的,所述步骤(b)可以替换为:若一组数字为5位,则将该组数字,对256求余,得到数值存放的高字节;对除以256得到的数值存放为低字节,若一组数字为3位,则直接存入一个字节。本发明提出的先转码再编码的方式,避免了通用二维码扫描设备扫描二维码时容易导致崩溃或显示不友好的问题,即将不可肉眼识读的二进制内容,转为常见的阿拉伯数字。对原有数据进行了格式转码,并确定了转码规则,转码后占用空间增加不大。附图说明为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简要地介绍,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例的转换流程图。具体实施方式为便于对本发明实施例的理解,下面将结合附图以及几个具体实施例为例做进一步的解释和说明,且各个实施例并不构成对本发明实施例的限定。实施例一:可以直接使用十六进制进行数据表示,但是该方式直接使数据占用二维码存储空间放大一倍。在实施例一中,本发明的编码方式占用空间略微增加。某认证的应用中,需要存放一串加密数据到二维码,以用于认证:其密文(十六进制表示)如下:96d36ca38854d4a1bc3e995abfb620704ba06e3d8fc9d1e5e198c091035946bb01a83a6a91b9b06c上述共有40字节,80个字符,分组如下:96d36ca38854d4a1bc3e995abfb620704ba06e3d8fc9d1e5e198c091035946bb01a83a6a91b9b06c对应转为十进制数字如下:3861127811349005443348190392584907808304193602822136809537335775249297008571810700424149543730545164。拼为一串即为转换后的结果,100位阿拉伯数字:38611278113490054433481903925849078083041936028221368095373357752492 97008571810700424149543730545164以版本9以下qr码编码为例,对上述分别进行原始数据、十六进制字符与阿拉伯数字字符编码,占用空间计算:待编码数据表示方式二维码的编码模式占用空间(bit)二进制数值八位字节模式332十六进制字符八位字节模式652本发明转码数字348从上表中可以看出,直接使用十六进制进行数据表示,需要占用652bit的二维码空间直接使数据占用二维码存储空间比使用二进制数值表示方式放大一倍,本发明的编码方式占用空间只是略微增加。另外,采用两字节一组进行阿拉伯数字转换的依据为字节组能表示的最大值与转换结果位数表示的十进制最大值之比最大,阿拉伯数字位数的利用率最高。对比计算如下:字节数最大值对应十进制最大值十进制空间利用率排序125599925.53%32655359999965.54%13167772159999999916.78%444294967295999999999942.95%2通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域
的技术人员在本发明揭露的技术范围内,可轻易想到 的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1