`

[转]QRCode二维码字符长度问题

阅读更多
网上的二维码例子都比较好,不过就是没有比较详细讲解关于QRCode二维码生成的规则和要点。例如:为什么要在生成二维码的时候,判断字符集的长度要小于128。要知道二维码信息容量大:可容纳多达1850个大写字母或2710个数字或1108个字节,或500多个汉字,比普通条码信息容量约高几十倍。如果控制压缩内容在128个以内的话,那么二维码的优势哪里去了?
 
经过多次测试发现,二维码所能包含的字符信息量是由QrcodeVersion的设置值来决定的。将QrcodeVersion设置到20的时候,就已经可以容乃到300多个字节。
 
如果你以为这样就解决了问题的话,那么就错了,嘿嘿。如果只是修改了QrcodeVersion的值,解决的仅仅是字符集容量的问题,可是这样生成的图片无法解码。可是把字符容量控制在128个以内的时候,就可以正常的解码。难道日本人写的东西会有这么多的问题,网上搜来搜去,只能找到几个难兄难弟,但是没有找到解决的方法。
 
无意中打开生成的图片一看才发现了问题,生成的二维码图片的大小是会根据所压缩的信息内容而变化的,网上提供的例子是通过new BufferedImage(139, 139, BufferedImage.TYPE_INT_RGB);来创建图像对象的,默认的情况下图片的大小是139*139,这个大小是比较适合QrcodeVersion为7的情况。将图片的大小设置到300*300就可以很好的支持QrcodeVersion为20的情况,并且可以正常的解码。
 
QrcodeVersion的范围值是0-40,0的含义是表示压缩的信息量将会根据实际传入值确定,只有最高上限的控制,而且图片的大小将会根据信息量自动缩放。1-40的范围值,则有固定的信息量上限,而且图片的大小会固定在一个大小上,不会根据信息量的多少而变化。
分享到:
评论

相关推荐

    jQuery qrcode 实现输入字符串显示二维码

    jQuery qrcode 实现输入字符串显示二维码,页面显示二维码

    二维码(QRcode)生成算法 C语言/C++源码

    2. 根据输入字符串长度选择合适的QRcode版本; 3. 将编码转换为二进制位流表示为数据码字; 4. 使用多项式生成纠错码; 5. 将数据码和纠错码排列到二维码上; 6. 加入定位符号、时序符号等; 7. 加入格式信息; 8. ...

    C#调用QRCode.dll实现二维码的生成解析

    用网上代码改的,原代码解析带汉字二维码会出现乱码,加了一段内码转换的代码解决这个问题。 另外:在生成二维码有长度限制,英文字符120,中文60。还不知道怎么解决,有知道的告知下,谢谢。

    解决长度报错的qrcode.js

    text长度过长会报错,这个是改良之后的js,具体是qrcode.min.js还是qrcode.js改了,这个不记得了。试试吧!

    二维码生成工具.jar

    Java使用swing google.zxing.qrcode生成二维码,二维码图片能够直接显示,还提供了要生成的字符例子,字符可复制,并且字符长度监听,字符长度超出限制会有提示。下载后可改造。

    三角二维码QRCODE控件源码for Delphi 7&xe2

    三角二维码QRCODE控件源码for Delphi 7&xe2 ...另外:貌似 中文字符串 的长度有限制、这里就不多说了。 毕竟是免费的控件+源码。 本人还没找出该问题之所在。 要是有人找出问题所在的,亲告知本人一下。

    支持离线生成批量二维码

    可根据输入字符分隔成不同长度进行生成二维码无须二次开发,可直接使用; 可根据需求自定义二维码颜色,目前支持31个批量生成,可继续扩展; 可离线应用生成二维码,无须网络即可快速使用; 如有个行需求可支持扩展...

    C# QRCoder二维码生成

    //引用类库XH.Common string fileName = Guid.NewGuid().ToString("N... //XXXXXX二维码字符串内容,文件本地存储路径 //文件访问Url string QRCodeUrl = "http://" + Request.Url.Authority + "/QRImg/" + fileName;

    二维码编码解码器源码20130905

    二维码也开始应用到很多场合,如火车票有二维码识别、网易的首页有二维码图标,用户只需要用手机扫描一下就可以看到手机版网易的网址,免去了输入长串字符的麻烦。 条形码的标准: 条形码的标准有ENA条形码、UPC条形...

    二维码生成的四种种方式所需jar包代码

    java中生成二维码的三种方式,两种前端两种后端,后端的方式有一个对于二维码生成支持的字符串长度有限,根据需求取用。

    二维码编码解码器源码

    二维码也开始应用到很多场合,如火车票有二维码识别、网易的首页有二维码图标,用户只需要用手机扫描一下就可以看到手机版网易的网址,免去了输入长串字符的麻烦。 条形码的标准: 条形码的标准有ENA条形码、UPC...

    FeHelper超好用谷歌插件

    二维码生成器(支持当前页面、图片、链接、选中的文字生成QrCode) 二维码解码器(支持网页二维码右键解码) 网页滚动截屏(将当前整个网页转为图片并保存) Markdown转换(支持Markdown与HTML的互转) 页面取色工具...

    WEB前端助手(FeHelper)_v2019.09.0320.crx

    二维码生成器(支持当前页面、图片、链接、选中的文字生成QrCode) 二维码解码器(支持网页二维码右键解码) 简易Postman(Api接口测试,模拟HEAD/GET/POST方式) 网页滚动截屏(将当前整个网页转为图片并保存) ...

    PHPCMS V9.6.6 修改版

    修改内容列表: ...3. 支持MySQL8+ 4. 修改PHPCMS目录为CMS 5. 验证码修改 6. 支持H5上传,移除Flash上传 ...79. 新增字符长度dr_strlen函数 80. 新增将路径进行安全转换变量模式dr_safe_replace_path函数

Global site tag (gtag.js) - Google Analytics