【问题标题】:Can someone tell me how to create a QR code for a url with parameters有人可以告诉我如何为带有参数的网址创建二维码
【发布时间】:2012-07-22 09:28:01
【问题描述】:

我尝试使用一些网页来创建二维码来为常规网址创建二维码,它们都很好。

但是,如果我对 url 有参数,则生成的 url 无法正确解码。

如果你试试这个

http://chart.apis.google.com/chart?cht=qr&chs=500x500&choe=UTF-8&chld=H&chl=http://localhost?someparam=1&someotherparam=2

而不是二维码指向http://localhost?someparam=1&someotherparam=2

Android 和 iPhone 上的 Barcodescanner 解码器应用程序指向

http://localhost/?someparam=1&someotherparam=2

服务器名称(域名)和参数字符串开头之间的正斜杠 / 显然不正确。

我假设这与 url 编码有关,我只是在寻找可能已经破解这个问题的人指向正确方向的指针。

Zxing的二维码生成器也有同样的效果。但它似乎也依赖谷歌。

http://zxing.appspot.com/generator/

还有

http://d-project.googlecode.com/svn/trunk/misc/qrcode/js/sample.html

【问题讨论】:

    标签: url qr-code encode params


    【解决方案1】:

    您需要URL-encode 每个参数值,在您的示例中,特别是chl 参数。现在大多数语言都有这方面的库,或者在网络上搜索“url 编码器”会给你一个表单。

    http://localhost?someparam=1&someotherparam=2的url编码为http%3A%2F%2Flocalhost%3Fsomeparam%3D1%26someotherparam%3D2

    此外,对于本身就是参数值的 URL 的任何参数值也必须进行独立的 URL 编码。

    正如 Sean 下面提到的,如果您在 apppot 页面上的表单中输入您的 URL,它会正确地对图表 url 进行 URL 编码:

    http://chart.apis.google.com/chart?cht=qr&chs=350x350&chld=L&choe=UTF-8&chl=http%3A%2F%2Flocalhost%3Fsomeparam%3D1%26someotherparam%3D
    

    我不确定您的额外/ 评论。如果去你给的网址,code值为

    http://localhost?someparam=1
    

    这是预期的,因为 chl 参数值没有转义,因此在第一个 & 处结束。

    【讨论】:

    • 不幸的是,这不起作用。如果我将它粘贴到 zxing 二维码生成器中,它会给出一个无效的 URL 错误。如果我只获取参数并将其余 url 未编码,那么我会得到一个 QR 码,但扫描时参数不是 url 的一部分。
    • @user1325094,不,生成器只是为您完成 smparkes 描述的操作,这是正确的。你不能粘贴你已经转义的 URL。粘贴你的原始 URL,它会做正确的事情。
    • 我的大脑一定是在融化,但现在它正在起作用。但是我在网上看到其他人问过同样的问题,所以也许我没有吸毒。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多