二维码解码器

打开链接之前,先看清二维码里写的是什么。

把图片拖到这里、点击选择文件,或直接粘贴支持 JPG、PNG、WebP、GIF、BMP、AVIF、HEIC · 截图也可以 · 不会上传任何内容
还可以试试:生成二维码 →

这个工具能做什么

从图片或截图里扫出二维码,这个页面就会告诉你这个码写的是什么内容。常见情况它都能处理——网站截图、海报拍照、PDF 发票导出的图片——也能处理比较麻烦的情况,比如一张截图里同时有两三个码。识别到的每个码都会在图片上标出编号,点哪个编号,右侧面板就切换显示哪个码的内容。

图片不会离开你的电脑。解码完全在浏览器里进行:文件先读入一个画布,像素再交给页面内置的解码器处理,结果直接显示在屏幕上,没有上传、没有排队、不需要账号,也没有大小限制(只要你的电脑扛得住)。这一点在这个工具上尤其重要,因为人们要扫的二维码往往正是不想让别人服务器看到的东西——贴在路由器上的 Wi-Fi 密码、付款码、登机牌。

怎么用

从图片里读出二维码有三个入口:把图片拖到页面上、点击选择文件,或者剪贴板里有截图时直接按 Ctrl+V(Mac 上是 Cmd+V)。粘贴通常最快,因为你打开这个工具,多半是因为二维码出现在了一个手机对不上焦的屏幕上。JPG、PNG、WebP、GIF、BMP、AVIF、HEIC 都支持,相机直接拍的照片也可以,不需要先裁剪。

结果面板会把码解析出来,而不是甩给你一串原始字符。二维码很少是纯文本,大多数都是结构化数据。一个 Wi-Fi 码本来是 WIFI:T:WPA;S:MyNet;P:hunter2;; 这样一整串字符,这里会拆成三行——网络名称、密码、加密方式,每行都带独立的复制按钮。联系人名片(vCard 和 MECARD)、日历事件、邮件草稿、电话号码、地理坐标也是同样按字段拆开显示。原始字符串始终留在面板最下面,因为没有哪个解析器是万无一失的。

对于链接类型的码,域名会单独用大字号显示在最上面,打开链接的按钮放在它下面。这个顺序是故意安排的:在电脑上读二维码而不是掏手机扫,通常就是想在不点进去的情况下先知道它指向哪里。三种情况会自动标出来——用 Punycode 写的域名(xn-- 前缀,仿冒域名常用它来藏一些看起来像拉丁字母、实际是西里尔字母或希腊字母的字符)、直接用 IP 地址代替域名,以及已知的短链接服务,它们真正的目的地藏在一次跳转后面,这个页面在离线状态下没法帮你跟踪。

识别不出来怎么办

当二维码解码器什么都识别不到时,通常是图片太小或者太糊。二维码需要三个角上的定位方块能被清楚分辨,宽度低于大约 100 像素就很难稳定识别,这个页面在放弃之前已经会自动尝试放大 2 倍再试一次。把图片紧紧裁到二维码周围能解决大多数失败的情况。手持拍照造成的模糊没法靠算法救回来——重新稳稳地拍一张,而不是把糊的那张放大再放大。对比度低是另一个常见原因:浅灰色印在白底上,或者叠印在一张照片上,都可能信号不够。反色的码(深色背景、浅色方块)会自动处理,不用额外设置。码有损坏时有时还能读出来,因为二维码本身带里德-所罗门纠错,最高等级下大约能容忍 30% 的模块被破坏——但如果中间被 logo 挖了个洞,边角又缺了一块,通常就救不回来了。这个页面只是二维码解码器,EAN-13、Code 128 这类一维条形码是完全不同的编码方式,不在解码范围内。

背景:二维码是怎么来的

二维码由 Denso Wave(日本零部件供应商电装的子公司)的原昌宏和他的团队在 1994 年设计,最初是为了在丰田的生产线上追踪零件。普通条形码只能容纳大约二十个字符,而且必须朝一个固定方向才能读取;他们想要一种扫描器从任意角度都能找到的图形,这就是为什么图案的四个角里有三个放了大方块——扫描器先定位这三个方块,算出旋转角度,再读取数据。Denso Wave 持有这项格式的专利,但选择不对标准用途主张权利,规范本身在 2000 年以 ISO/IEC 18004 的名义正式发布。叠加在这套标准之上的各种编码格式其实只是约定俗成,并不属于标准本身:WIFI: 这种字符串是被安卓推广开的,MECARD 来自日本电信运营商 NTT DoCoMo,vCard 则单独定义在 RFC 6350 里。

都有哪些人在用

作为一款二维码扫描与识别工具,它最常见的使用场景是电脑屏幕上出现的二维码:网页应用里的登录码、两步验证的初始化码、邮件里的付款请求、PDF 里的会议证件。第二种是核对——你用二维码生成器做了一个码,想在送去印刷之前确认它编码的内容和你想的完全一致,因为印错了要重印一次。第三种是出于谨慎:停车缴费机、餐厅贴纸或者一封莫名其妙寄来的信上贴着二维码,先在这里把目的地看成文字再决定要不要打开。上班族也常用它从访客 Wi-Fi 卡上把网络名和密码提取出来。如果你的图片其实是一页 PDF,先用PDF 转图片处理一下;如果照片本身太大,用裁剪把二维码周围裁小一圈,往往比其他任何办法都管用。

常见问题

我的图片会上传到服务器吗?

不会。文件的读取和解码都在你的浏览器里完成,不会离开你的电脑。你可以断开网络之后再打开这个页面试一次,照样能识别出结果。

能不能不用摄像头,直接从图片里扫二维码?

可以,这正是这个工具的用途——上传或粘贴图片,它就会读出码的内容。它没有摄像头模式,这是故意的:在手机上,自带相机 App 扫二维码已经比网页做得更好。

为什么提示这是一个短链接?

因为短链接把真正的目的地藏在了一次跳转后面,要跟踪它需要你的电脑发起一次网络请求。这条提示是在告诉你,看到的这个域名并不是最终地址。

图片里的二维码解码不出来,该怎么办?

把图片紧紧裁到二维码周围再试一次。大多数失败都是因为码的像素太少,或者太模糊,导致三个角上的定位方块找不出来。

这个二维码识别工具能读条形码吗?

不能。这个页面只解码二维码。EAN-13、Code 128 这类一维条形码用的是不同的编码方式。