二维码的容错率(纠错等级),指的是二维码即使部分被遮挡、污损或损坏,依然能被正常扫描识别的能力。容错率越高,二维码能“自我修复”的范围就越大,但代价是可存储的数据容量减少。
容错的原理
二维码的容错能力来源于一种叫 里德–所罗门纠错码(Reed–Solomon Error Correction) 的技术。
它的原理是:
-
在编码时,除了存放真实数据,还额外加入一部分“冗余信息”;
-
当扫描时发现某些数据模块丢失或错误,这些冗余信息就能用来推算出原始数据;
-
冗余信息越多,二维码的抗损坏能力越强,但可用来存放实际内容的空间就相应减少。
比如:123被编码成123123,这样只要扫描到一部分二维码图片,二维码内容还是可以被全部读到。
容错率本质上就是在 “存储容量” 和 “容错能力” 之间做取舍。
容错能力等级
国际标准(ISO/IEC 18004)定义四个可选等级:
等级 | 可修复比例 | 说明 |
L | 7% | 冗余最少,容量最大,但抗损坏能力最低 |
M | 15% | 平衡型,适合大多数无遮挡应用 |
Q | 25% | 冗余较多,抗损坏能力强 |
H | 30% | 冗余最多,抗损坏最强,常用于带Logo 或环境复杂的场景 |
草料二维码的容错率默认规则
无 Logo 时
草料二维码生成器会 优先保持 二维码版本 尽量小(即码型尽量紧凑),并按以下逻辑自动选择容错率:
-
能用 Q(25%)且不提升版本 → 选 Q(25%)
-
若用 Q(25%) 会导致码版本增加 → 降到 M(15%),保持二维码更小
-
当内容再增长,连 M(15%)也需要升版本时 → 回到 Q(25%),因为版本无论如何都得增加,就优先保证更高的容错
有 Logo 时
如果二维码中嵌入 Logo,草料会 默认使用最高容错率 H(30%)。
原因是:
-
Logo 一般位于二维码中心,会遮挡掉部分关键信息模块
-
提升到最高容错率,可以最大限度弥补因遮挡而丢失的数据,提高二维码的可读性和扫描成功率
实际建议
-
无 Logo:生成器会在 15% 与 25% 间自动切换,兼顾小码型和扫描稳健性。
-
有 Logo:直接默认 30%,确保可读性。
-
场景复杂(印刷、户外、易磨损):建议选择较高容错率(25% 或 30%)。
-
场景单纯(屏幕展示、内容很长):可以使用较低容错率(15%),减少二维码尺寸。