我有一个使用
的Android应用URLEncoder.encode(S.getSongArtist(),"UTF-8")
编码发布到AppEngine python(2.7)Web服务的unicode字符串。在我使用的服务上
urllib.unquote_plus(artist)
这不能给我正确的结果。我有这样的输入:
Marie+Lafor%C3%AAt
未加注意
Marie Laforêt
如果我使用javascript url解码,例如:http://meyerweb.com/eric/tools/dencoder/ 我得到了
Marie Laforêt
正确的结果。
我尝试使用
urllib.unquote(artist).decode('utf-8')
但这会产生异常。任何提示都非常感谢。
修改
Taxellool在评论中得到了正确答案:
您尝试解码的内容已经解码。试试这个:
urllib.unquote_plus(artist.encode('utf-8')).decode('utf-8')
答案 0 :(得分:3)
Taxellool在评论中得到了正确答案:
您尝试解码的内容已经解码。试试这个:
urllib.unquote_plus(artist.encode('utf-8')).decode('utf-8')
答案 1 :(得分:1)
我猜你在urllib.unquote()之前解码:
>>> print urllib.unquote_plus('Marie+Lafor%C3%AAt'.decode('utf-8'))
Marie Laforêt
如果您在取消引用后解码,结果将是您想要的结果:
>>> print urllib.unquote_plus('Marie+Lafor%C3%AAt').decode('utf-8')
Marie Laforêt
请确保您没有将unicode传递给urllib.unquote_plus。