← 全部文章

二维码纠错等级详解:L、M、Q 和 H

2026-10-12 · 更新于 2026-10-26 error correction design technical

二维码自带纠错能力,所以即使码的一部分弄脏、刮花或被遮住,也仍然能读出来。纠错分四个等级:L 最多能恢复约 7% 的数据,M 约 15%,Q 约 25%,H 约 30%。等级越高,越能在中间放 Logo 或印在粗糙的材料上,代价是图案更密。大多数印刷用的码,默认选 M 就好;加 Logo 时用 H。

纠错是怎么工作的

二维码使用里德-所罗门码(Reed–Solomon),和保护 CD 光盘数据、太空通信数据的数学方法同属一类。生成二维码时,会在内容之外附加额外的「修复」数据。如果有些模块(那些小方块)读不出来,扫码器就用修复数据把缺失的部分重建出来。附加多少修复数据,取决于你选的等级。

四个等级

等级可恢复适用场景
L约 7%干净的数字场景,比如显示在屏幕上的码;让图案尽可能简单
M约 15%印刷码的理想默认值
Q约 25%可能被磨损或印在粗糙材料上的码
H约 30%中间有 Logo 的码,或用在恶劣环境里的码

这些百分比是指码的数据最多可以缺失多少仍能解码。它们是理想损坏情况下的上限;实际中,如果损坏的位置不对,比如盖住了角上的三个大方块,即使没到上限,码也可能失效。

代价:密度

修复数据越多,同样的内容需要的模块就越多。把等级从 L 提到 H,可能让码升高好几个版本,也就是行列更多、方块更小。在印刷尺寸固定时,方块越小越难识别。所以等级高并不自动更好:它是一份要占用空间的保险。

如果既要 Logo 又要印得小,就缩短内容。动态二维码里只存一个短链接,能给高纠错等级留出余地,又不会让方块变得很小。

Logo 与纠错

中间的 Logo 是故意遮住了一部分模块。高纠错等级(Q 或 H)能弥补被遮住的区域,但只在它的上限之内。把 Logo 控制在码宽的五分之一左右或更小,放在正中、远离角上的三个大方块,并且一定要扫一下打样。如果扫不出来,先缩小 Logo,再考虑调其他设置。

怎么选等级

  1. 码显示在屏幕上,干净且够大? L 或 M。
  2. 印在纸上,用在室内? M。
  3. 印在纸板、布料、瓶子或任何会被磨损的东西上? Q。
  4. 要加 Logo? H,配一个不大的 Logo,并且测试。
  5. 要印得很小? 用 M,内容尽量短,而不是用 H 配一个很密的图案。

尺寸和等级同样重要:印刷尺寸指南按扫码距离给出了最小宽度。

其他值得了解的上限

一个二维码最多能存约 7,089 个数字、4,296 个字母数字字符或 2,953 个字节,而且只有在最低纠错等级下才能达到。实际上,超过几百个字符的码,在普通印刷尺寸下用手机就很难扫,这也是应该链接到一个页面、而不是把文字直接放进码里的另一个原因。

常见问题

我该用哪个纠错等级?

大多数印刷码用 M。加 Logo 或预计会磨损时用 H,只有干净、够大、显示在屏幕上的码才用 L。

纠错等级越高,二维码越好扫吗?

不一定。当码的一部分会被遮住或损坏时,它有帮助;但它会让图案更密,印得小的时候反而更难识别。根据场景选等级,而不是选最高的那个。

为什么我加了 Logo 的二维码扫不出来?

很可能是 Logo 太大,或者盖住了关键区域。把它缩到码宽的五分之一左右或更小,挪到正中,使用 H 等级,加大码的印刷尺寸,再测试一次。如果还是不行,就排查一下其他常见原因。

免费创建一个动态二维码:印出去后也能随时改链接,每次扫码都有统计。

制作你的二维码 →