二维码为什么缺一块还能扫?容错等级 L/M/Q/H 详解
二维码用 Reed-Solomon 纠错码冗余存储,L 容错 7%、M 15%、Q 25%、H 30%。讲清容错原理、等级选择与-logo 二维码的正确做法。
一、容错的魔法:冗余纠错码
二维码存的不只是数据本身,还额外编码了纠错码(Reed-Solomon 算法)。扫描时即使部分区域污损、遮挡,解码器也能靠冗余信息把数据「算回来」——这就是logo 挡在二维码中间还能扫出来的原因。
二、四个容错等级
- L:可恢复 7% 码字,容量最大。
- M:可恢复 15%,默认均衡选择。
- Q:可恢复 25%,印刷品推荐。
- H:可恢复 30%,适合加 logo 或恶劣环境。
等级越高冗余越多,同样内容就要更密的点阵。这是容错能力与容量/密度的交换。
三、中间贴 logo 的正确姿势
带 logo 的二维码本质是「故意遮挡」:
- 生成时选 H 等级,留出 30% 的容错余量。
- logo 面积控制在二维码的 1/9 到 1/5 以内(约 11%-20% 面积),别超出容错能力。
- logo 别压住三个定位角(左上、右上、左下的大回字框)。
四、日常选择建议
- 网页/文本跳转、屏幕显示:M 足够。
- 海报印刷、可能磨损的标签:Q。
- 要嵌 logo、 outdoor 场景:H。
- 内容能短则短(用短链),密度低扫码成功率更高。
在线体验
不用装任何环境,直接用本站二维码在线生成工具在线操作,数据都在浏览器本地处理,方便又安全。
常见问题
容错等级越高越好吗?
不是。等级越高,同样数据需要更密的点阵,小尺寸打印反而难扫。原则:在扫码环境可接受的密度下,选够用的容错即可。
logo 可以盖住三个角吗?
绝对不行。三个定位图案是扫码器定位二维码的基准,被遮挡后设备找不到边界,直接无法识别。
破损一半的二维码还能扫吗?
理论上 H 等级也只保证 30% 码字可恢复,破损过半通常扫不出。遇到无法识别时,可以尝试提高打印对比度或用更高容错重新生成。
