二维码解码工具说明
二维码扫不出来的时候,或者你想看看某个二维码到底指向哪里再决定要不要扫,这个工具能帮上忙。它也支持直接从截图、海报、PDF 里截出来的二维码图片。
二维码里到底存了什么
很多人以为二维码里"存的是网址",其实不然。二维码本质是一段二进制数据加上编码方式的标记,常见的几种:
- 网址(URL):最常见。内容以
http://或https://开头,扫码后浏览器直接打开。 - 纯文本:任意字符串。可能是编号、密码、一句提示语。
- WIFI 配置:以
WIFI:开头,格式是WIFI:T:加密方式;S:名称;P:密码;;。这是华为、小米等系统的通用标准。 - 名片(vCard):以
BEGIN:VCARD开头,含姓名、电话、邮箱。 - 短信 / 电话:
SMSTO:号码:内容或tel:号码。 - 支付码:微信、支付宝的付款码是一串含签名和时效的加密串,解析出来也只有乱码,属于正常现象——它本来就设计成不可读。
本工具识别出内容后,会尽量判断它属于哪一类并给出相应的操作按钮。
为什么有时候识别不出来
二维码识别失败,原因通常可以归到这几类:
- 图片太模糊或分辨率太低。 二维码每个格点至少需要 2–3 个像素才能稳定识别。截图时把图片放得很大再截,效果会好很多。
- 缺少静区(白边)。 二维码四周需要一圈空白,标准要求至少 4 个格点宽。被人裁掉白边的二维码,识别率会明显下降。如果图形边缘紧贴图片边界,可以自己在外面补一圈白边再试。
- 反色。 白底黑格的二维码是标准形式;黑底白格(反色)虽然理论上也能读,但很多识别器不支持。遇到反色截图,先把图片颜色反转再识别。
- 形变或倾斜太严重。 拍屏幕、拍曲面包装上的二维码,会有透视畸变。轻微倾斜没问题,扭曲过度就难以定位那三个角上的定位方块了。
- 照片过曝或阴影遮挡。 局部反光会让一片格点全白,数据就丢了。好在二维码有纠错能力(见下),轻微遮挡还能读出来。
- 二维码本身是残缺的。 如果图像被裁掉一角,注意不能裁掉那三个大方块(左上、右上、左下各一个)。这三个是定位标志,少任何一个基本就读不出来。
纠错能力是怎么起作用的
二维码内建了纠错机制,用里德-所罗门编码给数据加了冗余。按冗余比例分四档:
- L 级(约 7% 冗余):能恢复约 7% 的损坏区域。
- M 级(约 15%):最常用的默认档位。
- Q 级(约 25%):适合可能被轻度磨损的场景。
- H 级(约 30%):最高冗余,中心常放 Logo 的营销码一般用这档。
这就是为什么中间盖了个 logo 的二维码还能扫出来——被 logo 遮住的部分,正好在纠错能力范围内。但要注意,冗余多了能存的数据就少了,同一个二维码,H 级能装的字符数只有 L 级的一半左右。
安全提醒:先看再扫
二维码的一个问题是"扫之前看不见内容",这正是钓鱼攻击喜欢用它当载体的原因。看到来路不明的二维码,尤其是贴在共享单车、停车缴费单、餐厅桌上那种,建议先用工具解析一下:
- 看域名对不对。正规企业有固定域名,如果跳到一个不认识的短网址或者拼写相近的仿冒域名,就很可疑。
- 警惕要求输入个人信息的链接。付款、登录、填身份证,都要格外小心。
- 留意
WIFI:类型的码——连接陌生 WiFi 有流量被嗅探的风险。
关于隐私
识别过程全部在浏览器里完成:图片读进内存,先在本地做灰度化、二值化、定位,再解码,全程不发网络请求。你可以按 F12 打开 Network 面板,拖入图片看看,不会出现任何上传动作。含个人信息的二维码截图(比如健康码、会员码)可以放心用它检查。
常见问题
可以识别屏幕截图吗?
可以。只要把二维码区域完整截下来(不要裁掉四周白边),识别率很高。如果截图里二维码只占一小部分,建议先裁剪到二维码区域再上传,效果更好。
能识别多个二维码吗?
一次处理一张图片。如果一张图里有多个二维码,工具会尝试给出其中一个的结果,通常是最大、最居中的那个。需要全部识别请分别裁剪后再上传。
支持动态二维码吗?
所谓"动态码"本质仍是一个普通二维码,只是里面的网址指向一个可跳转的服务。解码出来你会看到那个中间跳转地址,而不是最终的落地页。这是正常结果。
微信付款码解析出来是乱码,坏了吗?
没有坏。付款码的内容是加密的、带时效的支付凭证串,本来就是设计成不可读的。任何工具解析出来都是这串乱码。
图片会保存在服务器上吗?
不会,也不会离开你的电脑。工具没有后端,全部逻辑在浏览器里跑。断网后功能依旧可用。