我尝试过使用一些网页来创建 QR 码来为常规网址创建 QR,效果很好。
但是,如果我有 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的二维码生成器也有同样的效果。但它似乎也依赖于 Google。
http://zxing.appspot.com/generator/
还有
http://d-project.googlecode.com/svn/trunk/misc/qrcode/js/sample.html
最佳答案
您需要URL-encode每个参数值,在您的示例中,特别是 chl
参数。如今,大多数语言都有这方面的库,或者在网络上搜索“url 编码器”将为您提供一个表单。
http://localhost?someparam=1&someotherparam=2
的 URL 编码为 http%3A%2F%2Flocalhost%3Fsomeparam%3D1%26someotherparam%3D2
。
此外,本身就是参数值的 URL 的任何参数值也必须进行独立的 URL 编码。
正如 Sean 在下面提到的,如果您在 appspot 页面上的表单中输入您的 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
我不确定您的额外 /
评论。如果您访问您提供的 URL,则代码值为
http://localhost?someparam=1
这是预期的结果,因为 chl
参数值未转义,因此以第一个 &
结束。
关于url - 有人可以告诉我如何为带有参数的网址创建二维码吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11624485/