问题:部分随箱卡生成的二维码不显示
本地代码错误提示:
分析问题+debug本地代码:
-
存储空间是一定的,二维码数据解析位大于最大空间(数字+英文的ASCII码)
二维码(QR Code)中编码的数据位超过了其最大容量。具体来说,你的数据位数是696,而二维码的最大容量是688。
-
需要衡量标准:二维码纠错位和数据解析位的平衡,如果超过最大空间需要降低纠错级别
-
错误纠正级别有四种:L(最低)、M、Q和H(最高)
-
L(Low):最低的错误纠正级别,可以修正约7%的数据错误。
-
M(Medium):中间级别的错误纠正能力,可以修正约15%的数据错误。
-
Q(Quartile):较高级别的错误纠正能力,可以修正约25%的数据错误。
-
H(High):最高的错误纠正级别,可以修正约30%的数据错误。
-
-
降低纠错级别对于二维码的影响
-
容错能力减弱:
-
纠错级别越低,二维码在遭受损坏、污渍、遮挡等情况下的识别能力就越弱。这意味着如果二维码的部分区域无法读取,那么较低纠错级别的二维码可能无法正确解码。
-
-
数据安全性降低:
-
高纠错级别可以提供更好的数据保护,即使二维码部分受损也能恢复数据。降低纠错级别可能会增加数据丢失的风险。
-
-
打印尺寸调整:
-
由于较低纠错级别的二维码需要的冗余信息较少,因此在相同的数据量下,二维码的尺寸可能会减小。这在空间有限或者需要小型化二维码的情况下可能是有利的。
-
-
扫描设备兼容性:
-
不同的扫描设备和软件对二维码的识别能力和纠错级别支持程度可能不同。降低纠错级别可能会影响在某些设备或软件上的识别成功率。
-
-
应用场景限制:
-
对于需要在恶劣环境下使用(如户外广告、产品包装等)或者预期会遭受物理磨损的二维码,降低纠错级别可能会限制其适用范围。
-
-
可编码数据量增加:
-
降低纠错级别可以释放更多的空间来存储实际数据,这意味着在保持相同尺寸的前提下,可以编码更多的信息。
-
-
解决问题: 二维码打印多用zxing包下的封装util默认EncodeHintType,可以自定义纠错EncodeHintType级别
总的来说,降低二维码的打印纠错级别是一个权衡过程,需要在数据安全、识别可靠性、尺寸要求和可编码数据量之间做出选择。在决定纠错级别时,应考虑具体的应用场景和需求。