javascript - Qrcode.js - 错误 : code length overflow. (1716>1056)

标签 javascript qr-code

我正在使用 http://davidshimjs.github.io/qrcodejs/为事件生成二维码,但是当我尝试从下面显示的字符串生成代码时,出现此错误 错误:代码长度溢出。 (1716>1056)。我发现当我将 correctLevel : QRCode.CorrectLevel.H 更改为它工作的介质时。当我删除 DESCRIPTION 或字符串的其他部分时,它也有效。

您能向我解释一下这些限制是如何工作的吗?我应该如何设置,这样当代码是根据用户的输入生成的(它可以有很长的描述)时它不会崩溃?

qrkod(){
  this.qrCodeText =    "BEGIN:VCALENDAR"+"%0D%0A"+
                       "VERSION:1.0"+"%0D%0A"+
                       "BEGIN:VEVENT"+"%0D%0A"+
                       "DTSTART:" + "19960401T090000" +"%0D%0A"+
                       "DTEND:" + "19960401T043000" +"%0D%0A"+
                       "SUMMARY:" + "Your Proposal Review"+"%0D%0A"+
                       "DESCRIPTION:" + "Steve and John to review newest proposal material"+"%0D%0A"+
                       "END:VEVENT"+"%0D%0A"+
                       "END:VCALENDAR"+"%0D%0A";
  this.qrCodeText = decodeURIComponent(this.qrCodeText);

  this.qrcode0 = new QRCode("qrcode", {
      text: this.qrCodeText,
      width: 363,
      height: 385,
      colorDark : "#000000",
      colorLight : "#ffffff",
      correctLevel : QRCode.CorrectLevel.H
  });
}

最佳答案

我自己在使用该库时遇到了同样的错误,看来库中有一个错误,如果您使用 CorrectLevel.H 并且有一个介于 192 和 220 个字符之间的字符串,它将失败(请注意,在错误消息与字符串的长度不同)。它没有为 QR 码分配正确数量的空间/ block ,然后捕获该错误。

这可以通过增加/减少字符串长度使其超出该范围来解决。

关于javascript - Qrcode.js - 错误 : code length overflow. (1716>1056),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30796584/

相关文章:

javascript - 是否可以从任何已加载 jquery 的页面向 google.com 发出成功的 ajax get 请求?

javascript - jQuery 中的正则表达式用多行文本字段的 SharePoint ListView 上的链接替换模式

php - 如何将生成的 QR 码作为 PNG 存储到 Laravel 中的数据库中

python - 使用 hmac 生成瑞典 BankID Python 动画 QR 代码

android - 将Zxing条码读取集成到Android应用程序中

php - 使用 PHP QrCode 生成二​​维码

javascript - 在文本框中显示变量的值

javascript - 如何根据要素图层的字段值更改 infoTemplate 内容

javascript - 如何使用 ApiSauce 传递不记名授权 token

swift - 如何使用 Swift 扫描 UIImage 中的二维码