二维码纠错检测(QR Code Error Detection)是二维码编码系统中确保数据完整性的关键机制。二维码的数据区由码字(1 个码字等于 8 位)构成,并在其中附加了 Reed-Solomon 纠错码。Reed-Solomon 以字节为单位进行纠正,因此对污损、缺角这类集中在一处的连续误差较为有效:只要受损范围没有超出所选纠错等级的能力,码图即使部分损坏、污染或被遮挡,仍然可以正确读取编码数据。
二维码标准定义了四个纠错等级:L 级(约 7% 的码字可恢复)、M 级(约 15%)、Q 级(约 25%)和 H 级(约 30%)。纠错等级越高,编码中包含的冗余纠错码字越多,抗损能力越强,但相应地可存储的有效数据量会减少,二维码的模块密度也会增加。
对于嵌入短链接 URL 的二维码,纠错等级的选择直接影响实际使用体验。户外广告牌、产品包装、工业标签等容易磨损或部分遮挡的场景建议使用 Q 级或 H 级纠错;而手机屏幕显示、电子票务等受控环境可使用 L 级或 M 级以容纳更长的 URL 或生成更小尺寸的二维码。
短链接服务通过大幅缩短 URL 长度,使二维码在相同物理尺寸下能够选择更高的纠错等级,这是短链接与二维码结合使用的核心优势之一。设计带有品牌 Logo 覆盖的二维码时,必须确保纠错等级足以补偿被 Logo 遮挡的数据区域面积。
具体到二维码的结构,格式信息 (15 位) 与版本信息 (18 位) 在数据区之外分别应用了 BCH(15,5) 和 BCH(18,6) 编码。扫描器会先确认格式信息是否被正确读取,然后再进入数据区的解码。