二维码扫描识别

在线识别图片、粘贴截图或摄像头里的二维码,一张图多个码全部读出;网址显示真实域名,GBK 与 Shift_JIS 文本不乱码,图片不上传。

  • 图片和摄像头画面留在浏览器里;URL 模式会从你输入的地址下载图片
  • 免费 · 无需注册
填入 http:// 或 https:// 图片地址,点“解码”或按 Enter。图片网站必须允许 CORS 跨域请求。请求不带 Cookie 和来源页;下载失败时,先保存图片再拖入。

网址方式会向图片网站发起请求,网站会看到你的 IP 地址。

“用摄像头扫描”会请求权限,并优先使用后置摄像头。画面只在本浏览器中处理,识别到含码的第一帧就停止;“关闭摄像头”、清空或 Ctrl/⌘+L 也会停止。需要浏览器支持摄像头接口,且页面处于安全环境。
图片 选择一张图片、拖入图片,或按 Ctrl+V / ⌘V 粘贴截图。格式须能在浏览器中显示,PDF 请先截图。zxing-wasm 3.1.4(ZXing C++ 的 WebAssembly 版)在首次使用时从本站加载,约 420 KB。支持 QR、Micro QR 和 rMQR,每图最多 16 个码;超过 16,777,216 像素会先缩小。

拖入图片、点击选择,或直接粘贴截图(Ctrl+V / ⌘V)

选择、拖入或粘贴另一张图片

PNG · JPG · GIF · WebP · BMP · AVIF,一张图可含多个码

示例、说明与常见问题 带实际输出的示例、与同类工具的差别,以及常见问题。

微信、支付宝的码扫出来是什么

支付二维码本身只是一段文字。按官方文档的示例值生成二维码再识别:

来源码里的内容本工具显示
微信支付 Native 下单返回的 code_url(微信支付文档)weixin://wxpay/bizpayurl/up?pr=NwY5Mz9&groupid=00「App 链接」,文本显示,注明只有能处理 weixin: 链接的 App 才能打开
支付宝当面付预下单返回的 qr_code(支付宝文档)https://qr.alipay.com/bavh4wjlxf12tper3a「网址」,域名一行显示 qr.alipay.com

两份文档都写明这类码两小时后失效,微信支付还说明 Native 支付码不支持相册或长按识别。解出来的内容适合核对域名和参数,付款仍要用对应 App 扫码。

识别结果怎么看

  • 网址:只有 http / https 会变成链接,点击才打开。地址里有 @ 时,@ 前面只是用户名,工具会指出实际打开的域名;含非拉丁字母的域名按 punycode(xn--)显示并提醒留意形近字母。
  • Wi-Fi、联系人、邮件、电话、短信、位置:拆成字段显示(Wi-Fi 格式见 ZXing 说明,名片支持 vCard 与 MECARD),原始文本折叠在下面。
  • App 链接:weixin://、otpauth:// 等只显示文本;javascript:、data:、file: 另加警告。不是文本的字节标为「二进制」,直接展开十六进制。

截图里有多个码、反色码和大照片

一张图里的码全部读出(最多 16 个),按从上到下、从左到右编号,预览图标出位置。黑底白码、旋转的码、没有白边的码都能识别。照片超过 16,777,216 像素(iOS Safari 的画布上限)时先缩小并在状态栏注明。实测 4000×3000 照片里一个 180 像素的小码,桌面版 Chromium 约 1.2 秒读出;33 模块的码缩到 45×45 像素则读不出,60×60 可以。

乱码:GBK、Shift_JIS 与 ECI

二维码存的是字节,规范(ISO/IEC 18004)允许用 ECI 声明字符集,但多数生成器不写。有 ECI 时按 ECI 解码并在卡片上注明;没有时,合法 UTF-8 按 UTF-8,否则中文页面先试 GB18030,再按 ZXing 的推测规则在 Shift_JIS 与 ISO-8859-1 之间选,结果标注「推测」,可在「文本编码」菜单里改。

实测:GBK 字节的「会议室 3F-A 预约码 2026」在本页直接读对;同一张图在英文页被推测成 ISO-8859-1,菜单选 GB18030 后恢复。

与同类工具的实测对比

2026-09-30 用同一组测试图在桌面版 Chromium 中测试(黑底白码、灰底灰码三家都能读):

测试图ZeroTool兔子二维码ScanQR
一图 3 个码3 张卡片,按从左到右编号3 个,顺序与图上相反3 个
GBK 文本(无 ECI)正确正确提示识别成功,文本为空
Shift_JIS 文本(无 ECI)正确按 GBK 解成乱码「搶嫗搒愮…」文本为空
4000×3000 照片中的小码约 1.2 秒读出读出「No QR code found」

兔子二维码识别率高,但只给原始文本:Wi-Fi、名片不拆字段,网址也不单列域名。

限制

  • 一次处理一张图。PDF 要先截图;HEIC 只有能显示它的浏览器(Safari)才能读。
  • 第一次解码要等约 420 KB 的解码器下载完,之后在本地运行。
  • 只识别 QR 系列,条形码(EAN、Code 128 等)读不出。
  • URL 模式要求图片所在服务器允许跨域(CORS),否则先把图片存下来再拖进来。

要生成二维码,用二维码生成器;分享 Wi-Fi 用 Wi-Fi 二维码生成器;想把长网址拆开看参数,用 URL 解析器。

FAQ

图片会上传到服务器吗?

不会。文件、粘贴的截图和摄像头画面都在浏览器里用 zxing-wasm 解码,解码器从本站 /vendor 目录加载。唯一会联网的是 URL 模式:浏览器从你填的地址下载那张图片,不带 Cookie 和来源页。

微信收款码扫出来的 weixin:// 链接为什么点不开?

weixin:// 只有微信能处理,浏览器打不开。工具把它按「App 链接」显示为文本,不生成可点击的链接。微信支付文档写明 Native 支付的 code_url 两小时后失效,并且不支持从相册或长按识别完成支付,要用微信「扫一扫」。

识别结果是乱码怎么办?

多半是码里存的是 GBK、Shift_JIS 或 EUC-KR 字节,又没有写 ECI 声明。在结果下方的「文本编码」菜单里换一个编码即可;「字节」一栏可以看到原始十六进制。中文页面在字节不是 UTF-8 时会先试 GB18030。

一张截图里有好几个二维码能一起识别吗?

能。最多读出 16 个,按从左上开始的顺序编号,预览图上的编号和结果卡片一一对应。

摄像头扫码需要什么条件?

浏览器支持标准的摄像头接口(getUserMedia)、页面是 HTTPS,并且你允许使用摄像头。只有按下「用摄像头扫描」才会请求权限,画面在本机解码。拒绝授权时可以改为上传照片。