QR码破坏具有特殊字符编码的哈希链接

时间:2015-11-30 22:09:37

标签: javascript jquery hash special-characters qr-code

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

以下代码成功生成QR码。但是,当我使用iPad在AT& TCodeScanner上扫描它时,哈希标记之后的所有特殊字符都相当于对它们执行的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%2Cmr%3A1%2Clocal_avail%3A1%2Cseller%3A1311674%257C8740%257C1192406%257C9119074%257C3136905%26q%3Dlre3083st

1 个答案:

答案 0 :(得分:2)

我刚试过同样的东西,似乎工作得很好。这是我使用的代码:

$('#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>

当我扫描时,我得到相同的值,但是我尝试使用另一个名为&#34;条码扫描器&#34;的QR码扫描器。

我使用jquery.qrcode.jsGenerate QR Code using jQuery对此有更多解释。然而,我注意到一个突出的问题是您可能希望将render:"image"更改为render:"canvas"