二维码只是穿了夹克的URL(以及里面还有什么)
大多数二维码包含网址,但其格式还支持Wi-Fi凭证、vCard、短信、地理坐标等。本文将介绍二维码内部的实际内容、纠错级别如何工作、静区要求的实际意义,以及何时应使用动态二维码还是静态二维码。
扫描任何二维码,你的手机就会打开一个网址。重复几百次后,你就会认为二维码只是网站的一个像素化快捷方式。这种想法是错误的,如果你正在构建任何生成或读取二维码的系统,这一点尤其重要。
二维码由ISO 18004定义。该规范支持四种编码模式——数字、字母数字、二进制和汉字——根据版本和错误校正级别,最多可承载约3KB的数据。URL约定只是约定而已,格式本身并不规定你放入的内容。
夹克里真正包含的内容
少数几种有效载荷格式已成为事实标准,因为移动操作系统相机应用能够自动解析它们并采取相应操作:
- 网址 —
https://example.com— 在浏览器中打开。最明显的一种。 - Wi-Fi凭据 —
WIFI:T:WPA;S:MyNetwork;P:hunter2;;— iOS和Android相机应用原生读取这些信息,并提供加入网络的选项。无需第三方应用。对于任何曾经试图通过手机读出WPA2密码的人来说,这可能是最有用的非URL有效载荷。 - vCard联系人 — 包含完整的v2.1或v3.0 vCard块,包含姓名、电话、邮箱、组织、地址。扫描时会提示“添加到联系人”。
- 电话号码 —
tel:+15555551234— 触发拨号。 - 短信 —
smsto:+15555551234:Pre-filled message text - 电子邮件 —
mailto:user@example.com?subject=Hello&body=... - 地理坐标 —
geo:37.7749,-122.4194— 在地图应用中打开。 - 日历事件 — 使用VEVENT块(iCalendar格式)直接添加到设备日历中。
Wi-Fi功能值得特别指出,因为大多数人并不知道它的存在。如果你正在为酒店、共享办公空间或活动等设置访客网络,打印Wi-Fi二维码比在卡片上贴密码要好得多。几乎所有现代手机相机都能直接处理,无需任何应用。

错误校正:为什么你可以把一个logo放在中间,它仍然能被扫描
二维码使用Reed-Solomon错误校正,这意味着它可以利用模式中内置的冗余单元来重建缺失或损坏的数据。共有四个校正级别:
| 等级 | 姓名 | 最大码字恢复 | 何时使用 |
|---|---|---|---|
| L | 低的 | ~7% | 干净的数字环境——屏幕、PDF、演示文稿。最小的模式密度。 |
| M | 中等的 | ~15% | 通用用途。大多数生成器的默认设置。适用于大多数印刷用途的合理平衡。 |
| Q | 四分之一 | ~25% | 工业标签、户外标识,任何可能沾上灰尘或轻微物理损伤的情况。 |
| H | 高的 | ~30% | 带有品牌logo并有意将其置于中心位置的二维码。logo会破坏数据;H级校正会从冗余单元中重建数据。 |
代价是密度:校正级别越高,相同模式中的冗余数据单元就越多。一个版本10的二维码在H级别下明显比相同URL在L级别下更复杂。复杂性越高,意味着在给定打印尺寸下每个单元格更小,这在扫描角度不佳或对比度较低时会增加失败风险。讽刺但真实:过度提高错误校正可能会使二维码在实际扫描中更难识别。
带有品牌logo的技巧之所以有效,是因为H级二维码被设计为能容忍约30%的数据丢失。只要中心logo覆盖的面积小于该值,扫描器就能从冗余单元中填补空白。超过30%则会形成一个无法扫描的图形。
安静区:没有人会记录这个规则,直到二维码无法扫描时才意识到
每个二维码都需要一个安静区——四周的空白白边区域。ISO规范要求至少4个模块(一个“模块”是网格中的一个方格)。如果省略这个区域,扫描器将无法工作,尤其是在光线不佳或倾斜角度的情况下。
这是“正确”但实际无法扫描的二维码在生产中出现的根本原因:二维码被裁剪过紧,直接贴在暗色边框上,或打印在颜色背景上导致边框溢出。一个没有白边的深色纸盒上的二维码将可靠地失败。扫描器需要这些空白区域来定位角落的定位图案。
实际数值:在任何打印尺寸下,每边至少提供4到6毫米的白色边距。如果你做不到这一点,不如使用更大版本的二维码,而不是强行挤入狭窄空间而忽略边距。
静态与动态:正确的选择并不明显
A 静态二维码 直接将数据编码到图案中。一旦打印完成,它就是永久性的——要更改其指向的内容,只能重新打印。无需服务器,无需第三方,可永久使用。
A 动态二维码 编码一个由服务(如qr.io、Bitly等)管理的短跳转URL。跳转目标在打印后可编辑。你还可以获得扫描分析——访问次数、时间、设备、大致位置。
对于任何在实体印刷材料上的应用——菜单、产品包装、活动标识——动态二维码几乎总是最佳选择。如果URL变更,重新打印1万件产品包装是昂贵的。对于仅用于数字场景且无需重新打印的情况,静态二维码更简单,且无任何依赖风险。
人们很少提及的风险:在实体包装上使用动态二维码,是押注第三方跳转服务在未来两年内存在。在5万件产品上打印指向初创公司QR服务免费套餐的二维码,你就做出了一个关于该服务持续运行的长期承诺。如果该服务被关闭、被收购或仅取消免费套餐,所有这些二维码将同时失效。
如果你想生成二维码——静态或动态,任何错误校正级别,URL或Wi-Fi或vCard——那么 IO Tools上的二维码生成器 可在浏览器中完成,无需账户。
