二维码生成及识别方法、装置、电子设备、存储介质与流程

文档序号:20444995发布日期:2020-04-17 22:40阅读:232来源:国知局
二维码生成及识别方法、装置、电子设备、存储介质与流程
本说明书一个或多个实施例涉及编码
技术领域
,尤其涉及一种二维码生成及识别方法、装置、电子设备、存储介质。
背景技术
:二维码是采用特定的几何图形按照一定规律在平面(二维方向上)上分布的黑白相间的图形。二维码在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,进而图象输入设备或光电扫描设备可自动识读二维码所表示的含义。在相关技术中,可将url(uniformresourcelocator,统一资源定位符)链接转换成二维码,从而便于用户通过扫描该二维码来访问与该url链接对应的网络资源。技术实现要素:有鉴于此,本说明书一个或多个实施例提供一种二维码生成及识别方法、装置、电子设备、存储介质。为实现上述目的,本说明书一个或多个实施例提供技术方案如下:根据本说明书一个或多个实施例的第一方面,提出了一种二维码生成方法,包括:获取目标url链接,所述目标url链接由对包括多层级嵌套的子链接的原始url链接采用url编码算法进行编码得到,所述url编码算法用于将与任一层级子链接对应的分隔字符串编码为相应的长字符串;根据预先配置的长字符串与短字符串的映射关系,将所述目标url链接中包含的长字符串替换为短字符串,以得到对应于所述目标url链接的短url链接;基于所述短url链接生成二维码。可选的,采用所述url编码算法对任一层级子链接进行编码得到的长字符串,在下一次编码过程中被作为与该层级子链接对应的分隔字符串,所述分隔字符串用于标示出各层级子链接的内容,针对任一层级子链接的编码次数与该层级子链接所属嵌套层级数相等。可选的,所述获取目标url链接,包括:检测在url链接的输入区域内输入的内容,并将检测到的内容作为所述目标url链接;或者,获取所述原始url链接;采用所述url编码算法分别对所述原始url链接中的各层级子链接进行编码以得到所述目标url链接。可选的,采用所述url编码算法对任一分隔字符串进行编码得到的长字符串,与所述任一分隔字符串之间为一一对应关系;所述映射关系中长字符串与短字符串之间为一一对应关系。可选的,通过以下方式得到所述映射关系:获取包含若干样本url链接的链接集合,所述样本url链接包括多层级嵌套的子链接,且被采用所述url编码算法进行编码;统计所述链接集合中各个长字符串的出现频率;根据所述出现频率建立各个长字符串与短字符串的映射关系,任一长字符串对应的短字符串的长度与所述任一长字符串的出现频率呈负相关。根据本说明书一个或多个实施例的第二方面,提出了一种二维码识别方法,包括:解析目标二维码以获取短url链接;所述短url链接由根据预先配置的长字符串与短字符串的映射关系将目标url链接中包含的长字符串替换为短字符串得到,所述目标url链接由对包括多层级嵌套的子链接的原始url链接采用url编码算法进行编码得到,所述url编码算法用于将与任一层级子链接对应的分隔字符串编码为相应的长字符串;获取针对所述短url链接的还原结果,并将所述还原结果作为对应于所述目标二维码的目标url链接;所述还原结果由根据所述映射关系将所述短url链接中包含的短字符串替换为长字符串得到。可选的,采用所述url编码算法对任一层级子链接进行编码得到的长字符串,在下一次编码过程中被作为与该层级子链接对应的分隔字符串,所述分隔字符串用于标示出各层级子链接的内容,针对任一层级子链接的编码次数与该层级子链接所属嵌套层级数相等。可选的,所述映射关系配置于本地;所述获取针对所述短url链接的还原结果,包括:根据本地配置的所述映射关系将所述短url链接中包含的短字符串替换为长字符串;或者,所述获取针对所述短url链接的还原结果,包括:向还原服务器发送所述短url链接,以使得所述还原服务器根据所述映射关系将所述短url链接中包含的短字符串替换为长字符串;接收所述还原服务器返回的替换后的url链接以作为所述短url链接的还原结果。可选的,所述映射关系中的短字符串中包含短字符串标识;通过以下方式得到所述短url链接的还原结果:根据所述短字符串标识识别出所述短url链接中的短字符串,根据所述映射关系将识别出的短字符串替换为长字符串。可选的,通过以下方式得到所述映射关系:获取包含若干样本url链接的链接集合,所述样本url链接包括多层级嵌套的子链接,且被采用所述url编码算法进行编码;统计所述链接集合中各个长字符串的出现频率;根据所述出现频率建立各个长字符串与短字符串的映射关系,任一长字符串对应的短字符串的长度与所述任一长字符串的出现频率呈负相关。根据本说明书一个或多个实施例的第三方面,提出了一种二维码生成装置,包括:获取单元,获取目标url链接,所述目标url链接由对包括多层级嵌套的子链接的原始url链接采用url编码算法进行编码得到,所述url编码算法用于将与任一层级子链接对应的分隔字符串编码为相应的长字符串;替换单元,根据预先配置的长字符串与短字符串的映射关系,将所述目标url链接中包含的长字符串替换为短字符串,以得到对应于所述目标url链接的短url链接;生成单元,基于所述短url链接生成二维码。可选的,采用所述url编码算法对任一层级子链接进行编码得到的长字符串,在下一次编码过程中被作为与该层级子链接对应的分隔字符串,所述分隔字符串用于标示出各层级子链接的内容,针对任一层级子链接的编码次数与该层级子链接所属嵌套层级数相等。可选的,所述获取单元具体用于:检测在url链接的输入区域内输入的内容,并将检测到的内容作为所述目标url链接;或者,获取所述原始url链接;采用所述url编码算法分别对所述原始url链接中的各层级子链接进行编码以得到所述目标url链接。可选的,采用所述url编码算法对任一分隔字符串进行编码得到的长字符串,与所述任一分隔字符串之间为一一对应关系;所述映射关系中长字符串与短字符串之间为一一对应关系。可选的,通过以下方式得到所述映射关系:获取包含若干样本url链接的链接集合,所述样本url链接包括多层级嵌套的子链接,且被采用所述url编码算法进行编码;统计所述链接集合中各个长字符串的出现频率;根据所述出现频率建立各个长字符串与短字符串的映射关系,任一长字符串对应的短字符串的长度与所述任一长字符串的出现频率呈负相关。根据本说明书一个或多个实施例的第四方面,提出了一种二维码识别装置,包括:解析单元,解析目标二维码以获取短url链接;所述短url链接由根据预先配置的长字符串与短字符串的映射关系将目标url链接中包含的长字符串替换为短字符串得到,所述目标url链接由对包括多层级嵌套的子链接的原始url链接采用url编码算法进行编码得到,所述url编码算法用于将与任一层级子链接对应的分隔字符串编码为相应的长字符串;获取单元,获取针对所述短url链接的还原结果,并将所述还原结果作为对应于所述目标二维码的目标url链接;所述还原结果由根据所述映射关系将所述短url链接中包含的短字符串替换为长字符串得到。可选的,采用所述url编码算法对任一层级子链接进行编码得到的长字符串,在下一次编码过程中被作为与该层级子链接对应的分隔字符串,所述分隔字符串用于标示出各层级子链接的内容,针对任一层级子链接的编码次数与该层级子链接所属嵌套层级数相等。可选的,所述映射关系配置于本地;所述获取单元具体用于:根据本地配置的所述映射关系将所述短url链接中包含的短字符串替换为长字符串;或者,所述获取单元具体用于:向还原服务器发送所述短url链接,以使得所述还原服务器根据所述映射关系将所述短url链接中包含的短字符串替换为长字符串;接收所述还原服务器返回的替换后的url链接以作为所述短url链接的还原结果。可选的,所述映射关系中的短字符串中包含短字符串标识;通过以下方式得到所述短url链接的还原结果:根据所述短字符串标识识别出所述短url链接中的短字符串,根据所述映射关系将识别出的短字符串替换为长字符串。可选的,通过以下方式得到所述映射关系:获取包含若干样本url链接的链接集合,所述样本url链接包括多层级嵌套的子链接,且被采用所述url编码算法进行编码;统计所述链接集合中各个长字符串的出现频率;根据所述出现频率建立各个长字符串与短字符串的映射关系,任一长字符串对应的短字符串的长度与所述任一长字符串的出现频率呈负相关。根据本说明书一个或多个实施例的第五方面,提出了一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器通过运行所述可执行指令以实现如第一方面所述的方法。根据本说明书一个或多个实施例的第六方面,提出了一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器通过运行所述可执行指令以实现如第二方面所述的方法。根据本说明书一个或多个实施例的第七方面,提出了一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如第一方面所述方法的步骤。根据本说明书一个或多个实施例的第八方面,提出了一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如第二方面所述方法的步骤。在本说明书的实施例中,原始url链接包含多层级嵌套的子链接,各层级子链接之间通过分隔字符串来区分开,而当子链接内容本身也包含分隔字符串(即分隔字符串属于子链接的至少一部分内容)时,该子链接内容本身包含的分隔字符串存在“混淆”问题,那么以分隔字符串为依据则无法正确识别出各层级子链接。因此,采用url编码算法将与任一层级子链接对应的分隔字符串编码为相应的长字符串以解决上述“混淆”的问题。一方面,原始url链接中各层级子链接本身包含的分隔字符串被编码为字符长度相对更长的长字符串,导致编码得到的目标url链接较长。另一方面,各个被编码的分隔字符串可能为相同的分隔字符串,这就导致编码得到的目标url链接中包含大量重复的编码内容。由于编码得到的目标url链接长度增加且重复内容较多,生成的二维码随之也就更加复杂。因此,通过预先配置长字符串与短字符串的映射关系,可以将编码得到的目标url链接中包含的长字符串替换为短字符串,从而有效减小目标url链接的长度和复杂度,那么基于替换后得到的短url链接生成的二维码则相应较为简单,有利于提高识别二维码的效率。而在识别二维码时,根据上述预先配置的映射关系来还原出原始url链接即可。附图说明图1是一示例性实施例提供的一种二维码生成方法的流程图。图2是一示例性实施例提供的一种二维码识别方法的流程图。图3a是一示例性实施例提供的另一种二维码生成方法的流程图。图3b是一示例性实施例提供的二维码的示意图。图4是一示例性实施例提供的另一种二维码识别方法的流程图。图5是一示例性实施例提供的一种电子设备的结构示意图。图6是一示例性实施例提供的一种二维码生成装置的框图。图7是一示例性实施例提供的另一种电子设备的结构示意图。图8是一示例性实施例提供的另一种二维码生成装置的框图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。请参见图1,图1是一示例性实施例提供的一种二维码生成方法的流程图。该方法应用于二维码生成设备,可以包括以下步骤:步骤102,获取目标url链接,所述目标url链接由对包括多层级嵌套的子链接的原始url链接采用url编码算法进行编码得到,所述url编码算法用于将与任一层级子链接对应的分隔字符串编码为相应的长字符串。在本实施例中,原始url链接包含多层级嵌套的子链接,各层级子链接之间通过分隔字符串来区分开,而当子链接内容本身也包含分隔字符串(即分隔字符串属于子链接的至少一部分内容)时,该子链接内容本身包含的分隔字符串存在“混淆”问题,那么以分隔字符串为依据则无法正确识别出各层级子链接。因此,采用url编码算法将与任一层级子链接对应的分隔字符串编码为相应的长字符串以解决上述“混淆”的问题。一方面,原始url链接中各层级子链接本身包含的分隔字符串被编码为字符长度相对更长的长字符串,导致编码得到的目标url链接较长。另一方面,各个被编码的分隔字符串可能为相同的分隔字符串,这就导致编码得到的目标url链接中包含大量重复的编码内容。由于编码得到的目标url链接长度增加且重复内容较多,生成的二维码随之也就更加复杂。因此,通过预先配置长字符串与短字符串的映射关系,可以将编码得到的目标url链接中包含的长字符串替换为短字符串,从而有效减小目标url链接的长度和复杂度,那么基于替换后得到的短url链接生成的二维码则相应较为简单,有利于提高识别二维码的效率。而在识别二维码时,根据上述预先配置的映射关系来还原出原始url链接即可。进一步而言,原始url链接包含多层级嵌套的子链接,原始url链接中的分隔字符串用于标示出各层级子链接的内容,因此各层级子链接之间可通过分隔字符串来区分开。例如,可将标示子链接开始位置和结束位置的字符串作为分隔字符串。但是,由于采用统一的分隔字符串作为识别的依据,当子链接内容本身也包含分隔字符串(即分隔字符串属于子链接的至少一部分内容)时,该子链接内容本身包含的分隔字符串存在“混淆”问题,那么以分隔字符串为依据则无法正确识别出各层级子链接。针对该问题,采用url编码算法将与任一层级子链接对应的分隔字符串编码为相应的长字符串,并且针对任一层级子链接的编码次数与该层级子链接所属嵌套层级数相等,而编码得到的长字符串在下一次编码过程中仍被作为与该层级子链接对应的分隔字符串。基于上述url编码的方式,任一层级子链接的编码次数比上一层级子链接的编码次数要多一次,那么该任一层级子链接内容本身包含的分隔字符串为对与上一层级子链接对应的分隔字符串进行url编码得到的长字符串。换言之,各层级子链接分别对应不同的分隔字符串,且相邻层级子链接之间的分隔字符串为“衍生”关系,也就不存在上述“混淆”问题。因此,各层级子链接之间仍可通过与所属嵌套层级对应的分隔字符串来互相区分开。举例而言,在http协议中参数的传输形式为“key=value”,当需要传输多个参数时,可采用“&”符号对键值对进行分割。例如,url链接为“https://www.alipay.com?name1=value1&name2=value2”,那么解析该url链接的服务端根据“&”分割出每一个参数,再用“=”来分割出参数值。换言之,统一采用“&”和“=”作为分隔字符串(当然,分隔字符串可根据url链接具体内容灵活来选取)。但是,随着网络业务越来越复杂,url链接中需要包含多层级嵌套的子链接。而当url链接包含多层级嵌套的子链接时,上述分割方式存在“混淆”的问题。例如,原始url链接为:https://www.alipay.com?thirdparam=https://www.baidu.com?param1=1&param2=https://www.taobao.com?subp1=c&subp2=d。其中,参数“thirdparam”包含两层级嵌套子链接:第1层级子链接为“https://www.baidu.com?param1=1&param2=”;参数param2(与参数param1并列同一层级)的值为第2层级子链接:https://www.taobao.com?subp1=c&subp2=d。若采用上述分割方式,第2层级子链接中的“subp1=c&subp2=d”存在混淆问题,无法被识别为参数param2的值,而可能被识别为与参数param1=1和参数param2并列同一层级的其他参数。因此,可采用url编码算法对上述原始url链接进行url编码以解决上述“混淆”的问题。具体而言,采用url编码算法将与任一层级子链接对应的分隔字符串编码为相应的长字符串,并且针对任一层级子链接的编码次数与该层级子链接所属嵌套层级数相等,而编码得到的长字符串在下一次编码过程中仍被作为与该层级子链接对应的分隔字符串。换言之,可理解为第几层级的子链接就需要编码几次。需要说明的是,对分隔字符串进行编码后得到的长字符串的长度大于该分隔字符串的长度。承接于上述举例,以urlencode编码为例,针对原始url链接选取的分隔字符串以及与之对应的长字符串如表1所示:分隔字符串编码1次得到的长字符串编码2次得到的长字符串://%3a%2f%2f%253a%252f%252f?%3f%253f=%3d%253d&%26%2526………………表1根据表1记录的编码方式,针对第1层级子链接进行1次url编码得到:https%3a%2f%2fwww.baidu.com%3fparam1%3d1%26param2%3d。针对第2层级子链接,需要进行2次url编码,其中第1次url编码的结果为:https%3a%2f%2fwww.taobao.com%3fsubp1%3dc%26subp2%3dd;在该编码结果的基础上再进行第2次url编码,得到的编码结果为:https%253a%252f%252fwww.taobao.com%253fsubp1%253dc%2526subp2%253dd。因此,对原始url链接进行url编码得到的目标url链接为:https://www.alipay.com?thirdparam=https%3a%2f%2fwww.baidu.com%3fparam1%3d1%26param2%3dhttps%253a%252f%252fwww.taobao.com%253fsubp1%253dc%2526subp2%253dd。而在对目的url链接进行解码(urldecode解码)时,第1次解码得到的结果为:https://www.alipay.com?thirdparam=https://www.baidu.com?param1=1&param2=https%3a%2f%2fwww.taobao.com%3fsubp1%3dc%26subp2%3dd。由此可得第1层级子链接为“https://www.baidu.com?param1=1&param2=”;参数param2的值为第2层级子链接。进一步的,进行第2次解码,得到的结果为:https://www.alipay.com?thirdparam=https://www.baidu.com?param1=1&param2=https://www.taobao.com?subp1=c&subp2=d。由此可得参数param2的值为https://www.taobao.com?subp1=c&subp2=d。在本实施例中,在一种情况下,用户可先通过url链接编码设备对原始url链接进行url编码以得到相应的目标url链接,进而在二维码生成设备中输入该目标url链接,以使得二维码生成设备生成二维码。那么,二维码生成设备可检测在url链接的输入区域内输入的内容,并将检测到的内容作为目标url链接。在另一种情况下,可将url编码的功能集成于二维码生成设备中,即二维码生成设备先获取原始url链接(比如可由用户向二维码生成设备输入原始url链接),再采用url编码算法分别对原始url链接中的各层级子链接进行编码以得到目标url链接。步骤104,根据预先配置的长字符串与短字符串的映射关系,将所述目标url链接中包含的长字符串替换为短字符串,以得到对应于所述目标url链接的短url链接。在本实施例中,一方面,原始url链接中各层级子链接本身包含的分隔字符串被编码为字符长度相对更长的长字符串,且编码的次数越多,编码后产生的长字符串则越长,导致编码得到的目标url链接较长。另一方面,各个被编码的分隔字符串可能为相同的分隔字符串,这就导致编码得到的目标url链接中包含大量重复的编码内容。由于编码得到的目标url链接长度增加且重复内容较多,生成的二维码随之也就更加复杂。针对该问题,可预先配置长字符串与短字符串的映射关系,从而基于该映射关系将编码得到的目标url链接中包含的长字符串替换为短字符串,从而有效减小目标url链接的长度和复杂度,那么基于替换后得到的短url链接生成的二维码则相应较为简单,有利于提高识别二维码的效率。而在识别二维码时,根据上述预先配置的映射关系来还原出原始url链接即可。其中,采用url编码算法对任一分隔字符串进行编码得到的长字符串,与该任一分隔字符串之间为一一对应关系,该映射关系中长字符串与短字符串之间为一一对应关系。在本实施例中,可基于各个长字符串的出现频率来建立映射关系。具体而言,可获取包含若干样本url链接的链接集合,样本url链接包括多层级嵌套的子链接,且被采用url编码算法进行编码。例如,可获取若干包括多层级嵌套的子链接的原始url链接并对这些原始url链接进行url编码,从而将编码结果(对原始url链接进行url编码得到的链接即为样本url链接)作为上述链接集合。然后,再统计链接集合中各个长字符串的出现频率,根据出现频率建立各个长字符串与短字符串的映射关系。其中,任一长字符串对应的短字符串的长度与该任一长字符串的出现频率呈负相关。由此可见,通过上述“基于出现频率”来建立映射关系的方式,在对原始url链接进行url编码后的链接中出现概率越高的长字符串,与其对应的短字符串的长度越短,那么可使得最终得到的短url链接的长度最短,进而基于该短url链接生成的二维码则相应最简单。例如,可采用huffman编码(哈夫曼编码,又称霍夫曼编码),依据字符出现概率来构造异字头的平均长度最短的码字。步骤106,基于所述短url链接生成二维码。在本实施例中,可采用任意生成二维码的算法来基于短url链接生成相应的二维码,本说明书一个或多个实施例并不对此进行限制。例如,二维码的类型可以为datamatrix、maxicode、aztec、qrcode、vericode、pdf417、ultracode、code49、code16k等,而针对不同类型的二维码,生成二维码的算法也随之不同。比如,可采用二维码生成器来选取待生成二维码的类型和相应的算法。相应的,针对上述二维码生成方法,本说明书还提供一种二维码识别方法。如图2所示,该方法应用于二维码识别设备,可以包括以下步骤:步骤202,解析目标二维码以获取短url链接;所述短url链接由根据预先配置的长字符串与短字符串的映射关系将目标url链接中包含的长字符串替换为短字符串得到,所述目标url链接由对包括多层级嵌套的子链接的原始url链接采用url编码算法进行编码得到,所述url编码算法用于将与任一层级子链接对应的分隔字符串编码为相应的长字符串。在本实施例中,对原始url链接进行url编码得到目标url链接的过程,以及建立映射关系的过程,可参考上述图2所示实施例的相应部分,在此不再赘述。步骤204,获取针对所述短url链接的还原结果,并将所述还原结果作为对应于所述目标二维码的目标url链接;所述还原结果由根据所述映射关系将所述短url链接中包含的短字符串替换为长字符串得到。在本实施例中,在一种情况下,由于映射关系固定(为一一对应关系)且不需要进行计算来完成长字符串与短字符串之间的转换,可将映射关系配置在二维码识别设备的本地,该映射关系占用的存储空间较小,同时利用该映射关系来完成长字符串与短字符串之间的转换,该操作占用的处理资源也较小。因此,基于映射关系配置于本地,可根据本地配置的映射关系将解析目标二维码得到的短url链接中包含的短字符串替换为长字符串。在另一种情况下,可将映射关系配置在还原服务器中,以由还原服务器利用该映射关系来完成长字符串与短字符串之间的转换,从而进一步减少对二维码识别设备的存储空间和处理资源的占用。基于此,二维码识别设备在解析目标二维码得到短url链接后,可向还原服务器发送该短url链接,以使得还原服务器根据本地配置的映射关系将短url链接中包含的短字符串替换为长字符串,从而二维码识别设备可接收还原服务器返回的替换后的url链接以作为短url链接的还原结果。在本实施例中,可在短字符串中添加短字符串标识,以用于表明短字符串的身份,从而与其他字符串区分开,有利于提高还原效率。例如,可以选取目标url链接中不包含的字符或字符串作为短字符串标识。因此,在利用映射关系将短字符串替换为长字符串的还原过程中,根据短字符串标识识别出短url链接中的短字符串,再根据映射关系将识别出的短字符串替换为长字符串。其中,短字符串标识的具体形式可根据具体情况灵活设定,本说明书一个或多个实施例并不对此进行限制。由以上实施例可见,原始url链接包含多层级嵌套的子链接,各层级子链接之间通过分隔字符串来区分开,而当子链接内容本身也包含分隔字符串(即分隔字符串属于子链接的至少一部分内容)时,该子链接内容本身包含的分隔字符串存在“混淆”问题,那么以分隔字符串为依据则无法正确识别出各层级子链接。因此,采用url编码算法将与任一层级子链接对应的分隔字符串编码为相应的长字符串,并且针对任一层级子链接的编码次数与该层级子链接所属嵌套层级数相等,而编码得到的长字符串在下一次编码过程中仍被作为与该层级子链接对应的分隔字符串。基于上述url编码的方式,任一层级子链接的编码次数比上一层级子链接的编码次数要多一次,那么该任一层级子链接内容本身包含的分隔字符串为对与上一层级子链接对应的分隔字符串进行url编码得到的长字符串。换言之,各层级子链接分别对应不同的分隔字符串,且相邻层级子链接之间的分隔字符串为“衍生”关系,也就不存在上述“混淆”问题。因此,各层级子链接之间仍可通过与所属嵌套层级对应的分隔字符串来互相区分开。一方面,原始url链接中各层级子链接本身包含的分隔字符串被编码为字符长度相对更长的长字符串,且编码的次数越多,编码后产生的长字符串则越长,导致编码得到的目标url链接较长。另一方面,各个被编码的分隔字符串可能为相同的分隔字符串,这就导致编码得到的目标url链接中包含大量重复的编码内容。由于编码得到的目标url链接长度增加且重复内容较多,生成的二维码随之也就更加复杂。因此,通过预先配置长字符串与短字符串的映射关系,可以将编码得到的目标url链接中包含的长字符串替换为短字符串,从而有效减小目标url链接的长度和复杂度,那么基于替换后得到的短url链接生成的二维码则相应较为简单,有利于提高识别二维码的效率。而在识别二维码时,根据上述预先配置的映射关系来还原出原始url链接即可。为了便于理解,下面结合场景和举例对本说明书的二维码生成、识别方案进行详细说明。请参见图3a,图3a是一示例性实施例提供的另一种二维码生成方法的流程图。该方法应用于二维码生成设备,可以包括以下步骤:步骤302,获取原始url链接。在本实施例中,以将url编码的功能集成于二维码生成设备为例进行说明。用户可向二维码生成设备输入原始url链接,并标明各层级子链接之间的嵌套关系,进而二维码生成设备可采用url编码算法分别对原始url链接中的各层级子链接进行url编码。步骤304,进行url编码。举例而言,原始url链接为:example://testapi/openapp?app=888888&update=sync&version=0.1.1111111.11&url=/www/index.html?first=true&second={0}&third={1}&forth=1&fifth=true&exparams={"alscitemext":{"channelkey":"{2}","cityid":"{3}","storeid":"{4}","sourcefrom":"{5}"}}。其中,第1层级子链接为:/www/index.html?first=true&second={0}&third={1}&forth=1&fifth=true&exparams=。第2层级子链接为:{"alscitemext":{"channelkey":"{2}","cityid":"{3}","storeid":"{4}","sourcefrom":"{5}"}}。以urlencode编码为例,":{"用于表示待上传对象的开始位置,":}"用于表示待上传对象的结束位置。因此可选取上述字符串作为分隔字符串,当然,上述仅为举例,具体选取方式可依据原始url的内容灵活设定。假定针对原始url链接选取的分隔字符串以及与之对应的长字符串(不分大小写)如表2所示:分隔字符串编码1次得到的长字符串编码2次得到的长字符串={"%3d%7b%22%3d%257b%2522":{"%22%3a%7b%22%2522%253a%257b%2522"}}%22%7d%7d%2522%257d%257d":{"%22%3a%7b%22%2522%253a%257b%2522":}"%22%3a%7d%22%2522%253a%257d%2522{"%7b%22%257b%2522":"%22%3a%22%2522%253a%2522""%22%2c%22%2522%252c%2522&%26%2526=%3d%253d/%2f%252f………………表2那么,针对第1层级子链接进行1次url编码得到:%2fwww%2findex.html%3ffirst%3dtrue%26second%3d{0}%26third%3d{1}%26forth%3d1%26fifth%3dtrue%26exparams%3d。针对第2层级子链接进行1次url编码得到:%7b%22alscitemext%22%3a%7b%22channelkey%22%3a%22{2}%22%2c%22cityid%22%3a%22{3}%22%2c%22storeid%22%3a%22{4}%22%2c%22sourcefrom%22%3a%22{5}%22%7d%7d。针对第2层级子链接进行2次url编码得到:%257b%2522alscitemext%2522%253a%257b%2522channelkey%2522%253a%2522{2}%2522%252c%2522cityid%2522%253a%2522{3}%2522%252c%2522storeid%2522%253a%2522{4}%2522%252c%2522sourcefrom%2522%253a%2522{5}%2522%257d%257d。综上,对原始url进行url编码后得到的目的url链接为:example://testapi/openapp?app=888888&update=sync&version=0.1.1111111.11&url=%2fwww%2findex.html%3ffirst%3dtrue%26second%3d{0}%26third%3d{1}%26forth%3d1%26fifth%3dtrue%26exparams%3d%257b%2522alscitemext%2522%253a%257b%2522channelkey%2522%253a%2522{2}%2522%252c%2522cityid%2522%253a%2522{3}%2522%252c%2522storeid%2522%253a%2522{4}%2522%252c%2522sourcefrom%2522%253a%2522{5}%2522%257d%257d。步骤306,采用数字映射码替换长字符串。举例而言,假定短字符串的形式为~n~;其中,~~为短字符串标识,中间的数字n来依次对应各个长字符串。例如,按照上述“出现频率”的方式得到的映射关系如表3所示:表3那么,根据表3替换目标url链接中的长字符串后得到的短url链接为:example://testapi/openapp?app=888888&update=sync&version=0.1.1111111.11&url=%2fwww%2findex.html%3ffirst%3dtrue%26second%3d{0}%26third%3d{1}%26forth%3d1%26fifth%3dtrue%26exparams~3~alscitemext~4~channelkey~1~{2}~2~cityid~1~{3}~2~storeid~1~{4}~2~sourcefrom~1~{5}~0~。步骤308,基于短url链接生成二维码。在本实施例中,可采用任意生成二维码的算法来基于短url链接生成相应的二维码,本说明书一个或多个实施例并不对此进行限制。例如,二维码的类型可以为datamatrix、maxicode、aztec、qrcode、vericode、pdf417、ultracode、code49、code16k等,而针对不同类型的二维码,生成二维码的算法也随之不同。比如,可采用二维码生成器来选取待生成二维码的类型和相应的算法。如图3b,二维码a为基于原始url链接生成的二维码,二维码b为基于短url链接生成的二维码。通过预先配置长字符串与短字符串的映射关系,可以将编码得到的目标url链接中包含的长字符串替换为短字符串,从而有效减小目标url链接的长度和复杂度,那么基于替换后得到的短url链接生成的二维码b相比于二维码a则相对较为简单,有利于提高识别二维码的效率。而在识别二维码时,根据上述预先配置的映射关系来还原出原始url链接即可。相应的,请参见图4,图4是一示例性实施例提供的另一种二维码识别方法的流程图。该方法应用于二维码识别设备,可以包括以下步骤:步骤402,扫描二维码b。在本实施例中,二维码识别设备可以是手机、平板电脑、二维码扫描器等设备,本说明书一个或多个实施例并不对此进行限制。以下以手机41扫描上述二维码b以访问网络资源为例进行说明。步骤404,解析二维码b获得短url链接。步骤406,根据数字映射码还原得到目的url链接。承接于上述举例,手机41本地配置有表3所示的数字映射码,那么手机41可根据本地配置的数字映射码将解析二维码b得到的短url链接中包含的短字符串替换为长字符串,进而得到对应于图3a所示实施例中原始url链接的目的url链接,也即上述步骤306的逆向过程,在此不再赘述。步骤408,根据原始url链接向服务器42访问网络资源。承接于上述举例,手机41可得到的目的url链接为:example://testapi/openapp?app=888888&update=sync&version=0.1.1111111.11&url=%2fwww%2findex.html%3ffirst%3dtrue%26second%3d{0}%26third%3d{1}%26forth%3d1%26fifth%3dtrue%26exparams%3d%257b%2522alscitemext%2522%253a%257b%2522channelkey%2522%253a%2522{2}%2522%252c%2522cityid%2522%253a%2522{3}%2522%252c%2522storeid%2522%253a%2522{4}%2522%252c%2522sourcefrom%2522%253a%2522{5}%2522%257d%257d。进一步的,手机41对目的url进行urldecode解码,以根据解码得到的url链接向服务器42访问相应的网络资源。与上述方法实施例相对应,本说明书还提供了一种二维码生成装置的实施例。本说明书的二维码生成装置的实施例可以应用在电子设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,请参考图5,图5是一示例性实施例提供的一种电子设备的示意结构图。如图5所示,在硬件层面,该设备包括处理器502、内部总线504、网络接口506、内存508以及非易失性存储器510,当然还可能包括其他业务所需要的硬件。处理器502从非易失性存储器510中读取对应的计算机程序到内存508中然后运行,在逻辑层面上形成二维码生成装置。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。请参考图6,在软件实施方式中,该二维码生成装置可以包括:获取单元61,获取目标url链接,所述目标url链接由对包括多层级嵌套的子链接的原始url链接采用url编码算法进行编码得到,所述url编码算法用于将与任一层级子链接对应的分隔字符串编码为相应的长字符串;替换单元62,根据预先配置的长字符串与短字符串的映射关系,将所述目标url链接中包含的长字符串替换为短字符串,以得到对应于所述目标url链接的短url链接;生成单元63,基于所述短url链接生成二维码。可选的,采用所述url编码算法对任一层级子链接进行编码得到的长字符串,在下一次编码过程中被作为与该层级子链接对应的分隔字符串,所述分隔字符串用于标示出各层级子链接的内容,针对任一层级子链接的编码次数与该层级子链接所属嵌套层级数相等。可选的,所述获取单元61具体用于:检测在url链接的输入区域内输入的内容,并将检测到的内容作为所述目标url链接;或者,获取所述原始url链接;采用所述url编码算法分别对所述原始url链接中的各层级子链接进行编码以得到所述目标url链接。可选的,采用所述url编码算法对任一分隔字符串进行编码得到的长字符串,与所述任一分隔字符串之间为一一对应关系;所述映射关系中长字符串与短字符串之间为一一对应关系。可选的,通过以下方式得到所述映射关系:获取包含若干样本url链接的链接集合,所述样本url链接包括多层级嵌套的子链接,且被采用所述url编码算法进行编码;统计所述链接集合中各个长字符串的出现频率;根据所述出现频率建立各个长字符串与短字符串的映射关系,任一长字符串对应的短字符串的长度与所述任一长字符串的出现频率呈负相关。与上述方法实施例相对应,本说明书还提供了一种二维码识别装置的实施例。本说明书的二维码识别装置的实施例可以应用在电子设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,请参考图7,图7是一示例性实施例提供的一种电子设备的示意结构图。如图7所示,在硬件层面,该设备包括处理器702、内部总线704、网络接口706、内存708以及非易失性存储器710,当然还可能包括其他业务所需要的硬件。处理器702从非易失性存储器710中读取对应的计算机程序到内存708中然后运行,在逻辑层面上形成二维码识别装置。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。请参考图8,在软件实施方式中,该二维码识别装置可以包括:解析单元81,解析目标二维码以获取短url链接;所述短url链接由根据预先配置的长字符串与短字符串的映射关系将目标url链接中包含的长字符串替换为短字符串得到,所述目标url链接由对包括多层级嵌套的子链接的原始url链接采用url编码算法进行编码得到,所述url编码算法用于将与任一层级子链接对应的分隔字符串编码为相应的长字符串;获取单元82,获取针对所述短url链接的还原结果,并将所述还原结果作为对应于所述目标二维码的目标url链接;所述还原结果由根据所述映射关系将所述短url链接中包含的短字符串替换为长字符串得到。可选的,采用所述url编码算法对任一层级子链接进行编码得到的长字符串,在下一次编码过程中被作为与该层级子链接对应的分隔字符串,所述分隔字符串用于标示出各层级子链接的内容,针对任一层级子链接的编码次数与该层级子链接所属嵌套层级数相等。可选的,所述映射关系配置于本地;所述获取单元82具体用于:根据本地配置的所述映射关系将所述短url链接中包含的短字符串替换为长字符串;或者,所述获取单元82具体用于:向还原服务器发送所述短url链接,以使得所述还原服务器根据所述映射关系将所述短url链接中包含的短字符串替换为长字符串;接收所述还原服务器返回的替换后的url链接以作为所述短url链接的还原结果。可选的,所述映射关系中的短字符串中包含短字符串标识;通过以下方式得到所述短url链接的还原结果:根据所述短字符串标识识别出所述短url链接中的短字符串,根据所述映射关系将识别出的短字符串替换为长字符串。可选的,通过以下方式得到所述映射关系:获取包含若干样本url链接的链接集合,所述样本url链接包括多层级嵌套的子链接,且被采用所述url编码算法进行编码;统计所述链接集合中各个长字符串的出现频率;根据所述出现频率建立各个长字符串与短字符串的映射关系,任一长字符串对应的短字符串的长度与所述任一长字符串的出现频率呈负相关。上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。在一个典型的配置中,计算机包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1