2

我尝试使用一些网页来创建 QR 码来为常规 url 创建 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的二维码生成器也有同样的效果。但它似乎也依赖谷歌。

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

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

4

1 回答 1

4

您需要对每个参数值进行URL 编码chl,在您的示例中,尤其是参数。如今,大多数语言都有这个库,或者在网络上搜索“url 编码器”会给你一个表格。

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

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

正如肖恩在下面提到的,如果您在 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

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

http://localhost?someparam=1

这是预期的,因为chl参数值没有被转义,因此在 first 结束&

于 2012-07-24T05:50:28.250 回答