1

我正在从我的 android 应用程序中传递以下网址

http://server.com/core/put/18.00283670425415/59.353229999542236/%5BB%40463336a0/

最后一个参数是一个 URI 编码的字符串。在烧瓶中,我的路线看起来像

@server.route('/put/<long>/<lat>/<tagline>/')
def put(long, lat, tagline):
    return tagline 

我得到[B@463336a0回报,我的网址更改为

http://server.com/core/put/18.00283670425415/59.353229999542236/[B%40463336a0/

这里发生了什么事?这真让我抓狂。

4

1 回答 1

1

这里发生的事情被称为percent-encoding。是的%5B百分比编码[%40是 的百分比编码@

您需要确保您的 Android 应用发送转义的URI。在这种特殊情况下,它看起来像这样(为清楚起见,简化示例):

>>> import urllib
>>> unescaped_url = '%5BB%40463336a0'
>>> escaped_url = urllib.quote(unescaped_url)
'%255BB%2540463336a0'
>>> unescaped_url == urllib.unquote(escaped_url)
True
于 2013-03-04T20:43:12.303 回答