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
相关产品推荐
相关产品推荐

