You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript二维码解码:如何获取正确结果字符串?新手求助

解决二维码扫描返回图像ASCII码而非目标文本的问题

嘿,刚学JS一周就上手移动端Web应用的二维码功能,已经超厉害啦!你遇到的这个问题其实很常见——那个示例的默认配置可能没指定优先读取二维码的文本内容,反而返回了原始的图像编码数据。

给你几个具体的修复步骤,跟着改就行:

  • 首先,确认你用的ZXing库(那个示例应该是基于它的),初始化阅读器的时候要添加解码提示,明确告诉它我们要读的是二维码文本:

    // 新建解码提示集合,指定只识别二维码,且尝试更精准解码
    const decodeHints = new Map();
    decodeHints.set(ZXing.DecodeHintType.POSSIBLE_FORMATS, [ZXing.BarcodeFormat.QR_CODE]);
    decodeHints.set(ZXing.DecodeHintType.TRY_HARDER, true);
    
    // 用带提示的配置初始化阅读器
    const reader = new ZXing.BrowserQRCodeReader(decodeHints);
    
  • 然后修改结果处理的代码,别再用reader.result啦,ZXing的扫描结果对象里,真正的文本内容是存在result.text属性里的:

    reader.decodeFromVideoDevice(null, videoElement, (result, error) => {
      if (result) {
        // 这里用result.text就能拿到你生成的'12345'啦
        alert("The Item ID is " + result.text);
      }
    });
    

另外还要检查一下你生成二维码的时候,是不是选了纯文本模式,别不小心生成了图像嵌入的二维码,那样扫描出来肯定是图像数据啦。

内容的提问来源于stack exchange,提问作者Rainer Acid Engblom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 11:00:13