问题
QR 码显示的字符串有(标准)大小限制。典型限制:
- 版本-1 -L-字母数字的二维码:25 个字符。
- 版本-1-M-字母数字的二维码:20 个字符。
还有一些软件工具可以将输入字符串转换为相应二维码符号的图像。这些工具必须遵守标准限制......但是当您测试这些工具中的任何一个时,它们不尊重......
他们不同意 ISO 标准限制?有“另一个ISO”吗?使用最大尺寸时是否存在错误或符号无法解释的风险?
背景(2013-09)和解释
在处理这个问题时,我遇到了一个新问题:每个工具对每个QR-Code-Version的字符串中的大小限制都有不同的选择。
如果所有QR-Code 生成工具都符合“QR-Code 标准”、ISO/IEC 18004:2006、表 7、“符号字符数和输入数据容量”;所有工具都必须按照 ISO 标准的规定渲染符号。例子:
字符串
HTTP://BIT.LY/1234567890
有 14+10=24 个字符,因此 24<25,是Alphanumeric Mode -L Version - 1的最大值。googleapis/chart/qr:123456789正常,但1234567890 失败。
api.qrserver:1234567890可以(很好!),但12345678901234 失败——因为有 14+14=28 个字符,所以 28>25。
字符串
HTTP://BIT.LY/12345
有 14+5=19 个字符,因此 19<20,是字母数字模式- M版本- 1的最大值。
...等等,还有许多其他 QR 码生成器(例如phpqrcode失败更多!)和版本 1 限制。
这是一个普遍的错误?或者我的期望(关于标准合规性和二维码生成器行为)是错误的?
PS:到目前为止,在我看来,工具中缺乏(ISO)标准合规性。
词汇表
二维码生成工具:任何在线或离线软件工具,可生成字符串二维码,提供输入字符串和一些参数(通常是版本、EPS、字符集和图像大小)。
可编码字符集:
8 位字节数据(二进制):一套完整的 UTF-8 或 ISO 8859-1 字符集。Binary是tools的常用默认字符集,带有 UTF8 选项。
字母数字数据:一组 ASCII 44 个字符(数字
0-9
;大写字母A-Z
;其他九个字符:(空格)、
$
%
*
+
-
.
/
:
)。通常工具没有此选项,而是“自动检测”行为,如果字符串为 UPPER CASE,则字符集设置为字母数字。
ECL:二维码的纠错等级。ECL-L(低)为 7%,ECL-M(中)为 15%。
版本1-L QR 码符号:21 行和低 (L) ECL 的符号。编码字母数字数据时,编码字符串的最大长度为 25 个字符。
版本1-M QR 代码符号:具有 21 行和中等 (M) ECL 的符号。编码字母数字数据时,编码字符串的最大长度为 20 个字符。
参考
ISO 标准表 7 的其他链接(副本和解释):
ISO/IEC 18004:2006,仅目录和副本:http ://raidenii.net/files/datasheets/misc/qr_code.pdf </p>