二维码没有有效期:扫不出来的真正原因与对策
二维码本身没有有效期
先说结论:二维码本身没有有效期。二维码只是一个装数据的容器,印出来的黑白图案不会随时间推移而发生变化。10 年前做的二维码,只要物理上还处于可读的状态,今天照样能扫出来。
这与条形码是同一个道理。超市商品上印的条形码没有「有效期」,二维码的图案本身同样是持久的。二维码的规格(ISO/IEC 18004)里也完全不包含任何与有效期相关的规定。
之所以会产生「二维码有有效期」的误解,绝大多数情况下问题不在二维码,而在于它指向的链接或服务是有期限的。分清这两者,是做出能长期使用的二维码的第一步。
「免费做的二维码有期限」这个误解
真相:二维码的生成方式不会改变有效期。但使用动态二维码服务时需要留意。
二维码分为「静态二维码」和「动态二维码」两种。静态二维码是把链接或文本直接嵌入图案本身,这种没有有效期。
动态二维码则是经由二维码服务的短链接转发到目标页面。嵌入图案里的是服务方的短链接,真正的目标地址由服务方在后台管理。这种情况下,一旦服务终止、或者免费方案到期,扫描之后就到不了目标页面了。
「免费做的二维码有期限」这个说法,正是来自动态二维码服务的这套机制。如果自己生成静态二维码,完全不必担心有效期的问题。
「旧的二维码会读不出来」这个误解
真相:二维码的规格从 1994 年至今没有变过,旧的二维码用市面上的手机照样能读。
二维码的规格(ISO/IEC 18004)自 1994 年由电装(现在的电装 Wave)开发以来,基本机制一直没有改变。规格制定初期生成的二维码,用市售的 iPhone 或 Android 手机读取也没有问题。
这是因为二维码的规格维持了「向后兼容」。即使追加了新版本的二维码,旧版本的二维码也不会因此变得读不出来。与 VHS 录像带因为播放设备消失而看不了形成对照,二维码在规格的稳定性上保持得相当好。
需要留意的反而是相反的方向:新版本、高密度的二维码在老旧的专用读取机上可能读不出来。这不是「旧码过期」,而是设备一侧的读取能力问题。要发给不特定多数人使用时,把版本压到较低、模块做大一些,兼容性会更好。
看起来像「过期」的 5 个原因
二维码看起来不能用了,主要有以下 5 个原因。
物理劣化导致的读取失败
数据没有期限,但作为印刷物的物理劣化确实会让二维码变得扫不出来。这也是被误当成「过期」的原因之一。
设置在室外的二维码,会因紫外线导致的褪色、风雨造成的磨损、污垢附着而使读取精度下降。特别是被阳光直射的位置,对比度往往在 1〜2 年内就开始明显降低。
二维码具备纠错功能,最高的 H 级即使数据(码字)丢掉约 30% 仍能复原。这个 30% 是相对数据而言的比例,并不等于面积的 30% 都没关系;缺损集中在一处,或者压到定位图案时,会在更早就读不出来。在室外或严酷环境中使用时,把纠错级别设为 H,并采用耐候性材料(陶瓷、不锈钢、抗紫外线薄膜),可以大幅延长使用寿命。
另外容易被忽视的是贴纸类的粘合劣化。边角翘起、图案跟着起皱,定位图案就会变形。发现翘边就尽早换新,比等到完全扫不出来再处理省事得多。
做出能长期使用的二维码的要点
想让二维码长期用下去,注意以下几点。
应对动态二维码的合约终止风险
动态二维码很方便,但带有一个风险:对服务提供方的依赖。因合约结束或服务下线而突然不能用的情况,现实中确实发生过。
作为对策,即使使用动态二维码,也建议把转发的目标地址放在自己的域名之下。万一服务终止,只要用自己的域名把同样的链接重现出来,已经印好的二维码就还能救回来。
另外一种有效的做法是分场景使用:名片、招牌等要用很多年的印刷物采用静态二维码,只有宣传单页之类短期用途才用动态二维码。在制作的时候就想清楚「这个二维码要用几年」,是不留后悔的运用关键。
「二维码到底有没有有效期」这个疑问的答案,取决于码的种类和运用方式。