`

[转]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 是一个基于 jQuery 的插件,用于在网页上生成二维码(Quick Response code)图像。这个插件允许开发者通过简单的 JavaScript 调用来将文本数据转化为二维码,并将其显示在网页上。二维码作为一种广泛...

    Qrcode二维码生成(C++)

    二维码(Qrcode)是一种二维条码技术,广泛应用于各种领域,如信息传递、产品追溯、电子支付等。在C++编程环境下,生成二维码涉及到图像处理和编码算法的知识。本项目提供了一个名为`qrlib`的库,允许开发者通过简单...

    c#引用ThoughtWorks.QRCode.dll生成二维码支持中文

    ThoughtWorks.QRCode.dll是一个由ThoughtWorks公司开发的库,它为.NET开发者提供了方便的二维码生成功能,包括对中文字符的支持。下面我们将深入探讨如何在C#项目中引用这个库,以及如何利用它生成包含中文的二维码...

    vb生成二维码QRCODE,使用zxing

    现在我们有了一个配置好的二维码生成器,可以将任意字符串编码为二维码图像。例如,要生成一个包含“你好,世界!”的二维码,可以这样做: ```vbnet Dim data As String = "你好,世界!" Dim qrImage As Bitmap =...

    解决长度报错的qrcode.js

    压缩包中的`qrcode.js`文件应该是经过修改的版本,用于解决长度报错的问题。在使用这个改良版库时,可以尝试不同的设置,如改变错误纠正级别,或者测试其对长文本的处理能力。同时,为了确保兼容性和稳定性,最好在...

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

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

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

    总的来说,使用C#调用QRCode.dll生成和解析二维码需要理解二维码编码原理,正确处理字符编码,以及考虑可能的数据长度限制。在实际应用中,可能还需要结合错误处理、数据安全和用户体验等多个方面进行优化。希望这些...

    二维码生成 图片Base64编码解码

    在Java中生成二维码,我们可以使用一些库,如`qrcode-jdk1.4.jar`,这个库提供了生成二维码的功能。以下是一个简单的Java生成二维码的示例: ```java import net.sf.qrcodegen.QRCode; public class ...

    二维码 QRCODE 国家标准

    - **字符计数指示符(Character Count Indicator)**:定义某一模式下的数据串长度的位序列。 - **ECI指示符(ECI designator)**:6位数字,用于标识具体的ECI任务。 - **编码区域(Encoding Region)**:符号中未...

    二维码生成工具-QRCode

    在这个项目中,我们拥有一个基于Visual Studio 2013开发的QRCode生成工具,它具备生成中文二维码的功能,并且没有字符长度的限制。这意味着用户可以将任意长度的中文文本转化为二维码,以便于扫描和读取。这对于需要...

    java生成二维码,java将二维码转换成base64

    Base64编码是将任何可变长度的输入(字节序列)转换为固定长度的输出,输出结果是可打印的ASCII字符。在Java中,我们可以使用`java.util.Base64`类来完成这个任务: ```java import java.nio.file.Files; import ...

    使用jquery.qrcode.js生成二维码插件

    之后将转换后的字符串作为参数传递给.qrcode()方法生成二维码。同时,这个实例展示了如何自定义二维码的背景和前景颜色。 - 实例4:根据实验和多方资料,微信和支付宝等应用对于二维码中文内容的识别有限制。在...

    二维码 QRCode

    在使用二维码时,通常需要一个二维码生成器来创建二维码,输入所需的信息,如URL、文本或联系人详情,生成器会根据数据类型和长度选择合适的编码模式,并进行错误校验计算。另一方面,使用二维码扫描器或手机应用...

    Delphi7二维码控件ZIntQRCode

    支持的数据类型包括字符串、数字、二进制等,根据实际需求选择合适的编码方式。 3. **绘制二维码**:调用Update方法,控件会自动计算并生成二维码图像。这个过程是实时的,如果数据或属性发生变化,只需再次调用...

    前端生产二维码jquery.qrcode.min.js下载

    - 错误处理:添加错误处理机制,如当输入的文本长度超出二维码容量限制时给出提示。 综上所述,`jquery.qrcode.min.js`为前端开发者提供了一个简单易用的生成二维码工具。通过理解和运用这些知识点,我们可以轻松...

    二维码生成器

    在这个特定的压缩包中,我们有一个名为"二维码字符长度.xls"的文件,这可能是一个Excel表格,用于记录不同长度的字符与生成的二维码之间的关系。 二维码技术在当今的信息时代广泛应用,包括网页链接、名片交换、...

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

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

    二维码生成dll,ThoughtWorks.QRCode 多版本

    ThoughtWorks.QRCode 库的核心功能在于能够将各种数据类型(如字符串、数字、二进制等)编码成符合国际标准的二维码图像。这些二维码可以被任何支持解码的设备扫描,从而读取其中的信息。库的设计易于集成到C#、VB...

Global site tag (gtag.js) - Google Analytics