二维码破坏了特殊字符编码的哈希链接

QR code ruining hash link with special character encoding

本文关键字:编码 特殊字符 哈希 链接 坏了 二维      更新时间:2023-09-26

使用名为jquery.qrcode的jquery插件和名为AT&在iPad上的TCodeScanner上,我的哈希链接将其特殊字符编码到其他内容中,因此破坏了哈希。我不确定这是否是二维码本身的性质问题,所以我把它贴在了这里。如果不是,我愿意删除它并将其移动到超级用户。

以下代码成功生成二维码。然而,当我在AT&TCodeScanner在iPad上,哈希标签后的所有特殊字符都会对它们执行等效的encodeURIComponent()操作("#"=>"%23","="=>"%3D等),扰乱了哈希链接。查看页面底部的实际扫描链接。

<div class="qr-3 qr-code"></div>
<script>
$(document).ready(function() {
      $(".qr-3").qrcode({
        render: 'image',
        size: 86,
        fill: '#000',
        text: "http://www.google.com/search?tbm=shop&gws_rd=ssl#tbs=vw:l,mr:1,local_avail:1,seller:1311674%7C8740%7C1192406%7C9119074%7C3136905&q=lre3083st"
      });
});
</script>

http://www.google.com/search?tbm=shop&gws_rd=ssl%23tbs%3Dvw%3Al%2Mr%3A1%2Local_avail%3A1%2Seller%3A1311674%257C8740%257C1192406%257C9119074%257C3136905%26q%3Dlre3083st

我刚刚尝试了同样的东西,看起来效果很好。这是我使用的代码:

$('#qrcodeholder').qrcode({
        text    : "http://www.google.com/search?tbm=shop&gws_rd=ssl#tbs=vw:l,mr:1,local_avail:1,seller:1311674%7C8740%7C1192406%7C9119074%7C3136905&q=lre3083st",
        render  : "canvas",  // 'canvas' or 'table'. Default value is 'canvas'
        background : "#ffffff",
        foreground : "#000000",
        width : 150,
        height: 150
    });

});

相同的html是:

<div id="qrcodeholder"> </div>

当我扫描时,我得到了相同的值,但我尝试使用另一个名为"条形码扫描仪"的二维码扫描仪。

我使用的是jquery.qrcode.js,使用jQuery生成QR码对此有更多解释。然而,我注意到的一件突出的事情是,您可能希望将render:"image"更改为render:"canvas"