我正在使用 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/