二维码破坏散列 link 特殊字符编码

QR code ruining hash link with special character encoding

在 iPad 上使用一个名为 jquery 的插件和一个名为 AT&TCodeScanner 的二维码扫描器,我的哈希 link 将它们的特殊字符编码成其他东西,因此破坏了哈希。我不确定这是否是二维码本身性质的问题,所以我把它贴在这里。如果不是,我愿意删除它并将其移至超级用户。

以下代码成功生成二维码。但是,当我在 AT&TCodeScanner 上使用 iPad 扫描它时,散列标签后的所有特殊字符都相当于对它们完成了 encodeURIComponent() ("#" => "%23", "=" => “%3D 等),弄乱了哈希值 links。请参阅页面底部以获取实际扫描的 link。

<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%2Cmr%3A1%2Clocal_avail%3A1%2Cseller%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>

当我扫描时,我得到了相同的值,但是我尝试使用另一个名为 "Barcode scanner".

的二维码扫描器

我用的是jquery.qrcode.jsGenerate QR Code using jQuery对此有更多的解释。然而,我注意到的一件突出的事情是您可能想要将 render:"image" 更改为 render:"canvas" .