上个月给一场活动设计海报,上面放了个二维码链接到报名页面。海报印出来之后有人反馈怎么扫都扫不出来。我当时在电脑上测试是好的,排查了半天,最后发现是尺寸太小的问题。从那次起我就专门记录了一下,二维码扫码不成功,基本上逃不出这几种情况。
先别急着放弃——二维码内置的 Reed-Solomon 纠错算法赋予了它惊人的抗损能力。即使 30% 的面积被污损,选择了 H 级纠错的码依然有机会被识别。关键是找对排查方向。
原因一:二维码尺寸太小

上个月给一场活动设计海报,上面放了个二维码链接到报名页面。海报印出来之后有人反馈怎么扫都扫不出来。我当时在电脑上测试是好的,排查了半天,最后发现是尺寸太小的问题。从那次起我就专门记录了一下,二维码扫码不成功,基本上逃不出这几种情况。
先别急着放弃——二维码内置的 Reed-Solomon 纠错算法赋予了它惊人的抗损能力。即使 30% 的面积被污损,选择了 H 级纠错的码依然有机会被识别。关键是找对排查方向。

这是印刷场景中最高频的问题。二维码有最小实用尺寸要求——在普通手机摄像头下,印刷尺寸建议不小于 2cm × 2cm。如果是需要远距离扫码的场景(如展台、餐厅桌贴、户外广告),则至少需要 5cm × 5cm。
影响扫描距离的因素不只是尺寸,还有二维码的版本(Version)。版本越高,模块越多越密,同样尺寸下每个模块更小,对摄像头分辨率的要求也更高。
解决方法:重新生成或导出一张更大的二维码图片。注意要用矢量格式(SVG)或者足够高分辨率的 PNG,不要把小图直接拉大——拉大只会模糊,不会增加实际信息密度。推荐使用 illi.io 二维码生成器,默认输出高清矢量格式。
这种情况比较隐蔽,因为二维码本身是「好的」,只是它指向的 URL 已经 404 了或者过期了。从用户视角看,就是「扫了没反应」或「扫出来一个错误页面」。
常见原因包括:活动结束后报名链接被关闭、免费短链接服务过期、网站改版导致 URL 结构变化、域名过期未续费。
解决方法:把二维码图片上传到 illi.io 二维码解码器 提取编码内容,看看里面的链接是否还能正常访问。这样就能区分「二维码坏了」和「链接坏了」。
预防建议:对于需要长期使用的二维码(如产品包装、店铺物料),建议使用活码(Dynamic QR Code)。活码可以随时修改目标链接,即使原链接失效也能后台切换到新地址。
二维码是靠黑白模块之间的对比度来工作的。以下因素会严重降低识别成功率:
解决方法:二维码尽量保持黑白配色,确保充足的白色静区边距(至少 4 个模块宽度)。如果必须用彩色,前景色的亮度值应低于背景色(深色码 + 浅色底)。

在二维码中央嵌入 Logo 是很流行的做法,技术上也是支持的——但前提是生成时将纠错等级设置为 H(最高,30% 容错)。如果使用了默认的低纠错等级(L,只有 7% 容错),再加一个遮挡面积不小的 Logo,就很容易把关键的编码数据覆盖掉。
解决方法:重新生成二维码,纠错等级选 H,Logo 大小控制在二维码总面积的 25% 以内。在 illi.io 二维码生成器 中可以直接选择纠错等级。

如果二维码已经印刷或张贴、无法重新生成,以下方法可以提高扫描成功率:
遇到二维码扫码失败时的排查顺序:尺寸够不够大 → 链接还有没有效 → 对比度和印刷质量是否达标 → 有没有嵌 Logo 且纠错等级是否为 H。按这个顺序逐项排查,基本上都能找到原因。如果码已经损坏无法重新生成,按上面 7 种方法依次尝试补救。