二维码明明生成好了,为什么扫不出来?
扫不出几乎总能归到三件事:留白不够、对比不足、或者码太密。
先看留白。二维码四周必须留出一圈空白,宽度至少等于 4 个模块,这圈空白是扫描器定位码区边界的依据。设计时把它裁掉、或让文字压进来,扫描器第一步就找不到码。
其次看对比与尺寸。深色码配浅色底是标准组合,反色(浅码深底)在不少扫描器上识别率明显下降;模块尺寸太小时,手机摄像头的分辨率不足以分辨单个格子,尤其在内嵌图标或内容很长时更容易发生。
二维码不是一堆随机黑白格,它有明确的结构:三个角上的定位图形、一条对齐图案、以及承载数据的模块阵列。扫描器先靠定位图形把码摆正,再靠留白确认边界,最后才逐个读模块。
任何一步被打断都会失败,而失败的表现还各不相同——有的完全读不出,有的读出乱码,有的只有在特定手机上能读。按结构顺序排查,比反复重新生成有效得多。
1按结构顺序排查
从最容易修复的一环开始,逐项排除。
| 检查项 | 规范要求 | 失败时的表现 |
|---|---|---|
| 四周留白 | 至少 4 个模块宽 | 完全读不出,或要凑很近才能读 |
| 明暗对比 | 深色码、浅色底 | 识别缓慢,光线稍差就失败 |
| 模块尺寸 | 单个模块别小于 1 毫米 | 远距离扫不出,近处才勉强成功 |
| 定位图形 | 三个角完整未被遮挡 | 对不上焦,图片歪斜时失败 |
| 内嵌图标 | 面积别超过码区的一小块 | 部分手机能读、部分读出错码 |
打印前把码放到实际尺寸下用两三种不同手机各扫一次。屏幕上显示正常不代表纸上印刷正常,墨迹扩散与纸张反光都会改变边界。
2纠错等级不是越高越好
纠错等级决定码能承受多少损坏,代价是同样内容需要更多模块。
| 等级 | 可恢复的数据比例 | 适用场景 | 代价 |
|---|---|---|---|
| 低 | 约 7% | 只在屏幕上显示、环境干净 | 码最疏,尺寸最小,但抗污能力最弱 |
| 中 | 约 15% | 日常印刷品的通用选择 | 平衡,属于默认档 |
| 四分位 | 约 25% | 包装、贴纸、可能被磨损的场景 | 码明显变密 |
| 高 | 约 30% | 要内嵌图标、户外、易脏易刮 | 码最密,同尺寸下模块最小 |
这个百分比指的是「可损坏的数据块比例」,不等于「可遮挡的面积」。图标遮住的是一整片连续区域,其中只有约一半是深色数据模块,所以别把 30% 直接当成可以盖住三成面积。
3内容与参数怎么选
把内容长度和纠错等级一起考虑,才不会做出「能扫但很勉强」的码。
- 先精简内容:能用短链就不用长网址,去掉多余参数,内容越短码越疏。
- 再定纠错等级:屏幕显示用中档即可,要内嵌图标或印在易磨损材质上再升到高档。
- 确定输出尺寸:按预期的扫描距离倒推,别只按设计稿上好看的大小生成。
- 保留留白:生成时不要裁掉四周空白,放进排版软件后也别让其他元素压进来。
- 落地前实测:至少用两三种机型、在弱光与倾斜角度下各扫一次。
- 如果扫出来是乱码而不是打不开,检查内容编码与是否混入了不可见字符。
相关疑问
反色的二维码为什么扫不出?
多数扫描器按「深色为数据、浅色为空」的约定解析。反色后这个约定被破坏,部分扫描器能自动纠正,部分不能,于是出现「有的手机能扫、有的不能」。除非明确需要,否则别用反色方案。
二维码里塞了图标就一定不可靠吗?
不一定,但要同时满足几个条件:纠错等级升到高档、图标面积足够小、留白完整、并且落地前用多种设备实测。缺任何一条,都可能出现「测试机没问题、用户扫不出」。
内容太长会怎样?
内容越长,所需模块越多、版本越高,同一个输出尺寸下每个模块就被压得越小。模块小到低于印刷或摄像头的分辨能力时,码就不可靠了。这时应优先缩短内容,而不是一味加大输出尺寸。
为什么屏幕上的码能扫,打印出来就不行?
常见三种原因:打印后墨迹扩散使边缘模糊、纸张反光降低对比、以及打印时被缩放导致模块宽窄不均。解决方向是提高对比、确保按整数倍缩放、并留足静默区。
继续看:相关问题与资料
全部问题解答 →内容说明:本页针对具体使用问题作答,方法步骤与数值由本站自行整理与复算,事实性内容以对应官方规范与文档为准。内容最后核对日期:2026-10-08。若发现错误,欢迎通过页脚反馈入口告知。
速查在线工具箱