Url在Python中解码UTF-8
就我在Python中的新手而言,我花了很多时间。
我怎么能解码这样一个url:
example.com?title=%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D0%B2%D0%B0%D1%8F+%D0%B7%D0%B0%D1%89%D0%B8%D1%82%D0%B0
到python 2.7中的这个: example.com?title==правовая+защита
url=urllib.unquote(url.encode("utf8"))
正在返回一些非常难看的东西。
仍然没有解决办法,任何帮助表示赞赏。
数据是用URL引用转义的UTF-8编码字节,所以你想解码 :
url=urllib.unquote(url).decode('utf8')
演示:
>>> import urllib >>> url='example.com?title=%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D0%B2%D0%B0%D1%8F+%D0%B7%D0%B0%D1%89%D0%B8%D1%82%D0%B0' >>> urllib.unquote(url).decode('utf8') u'example.com?title=\u043f\u0440\u0430\u0432\u043e\u0432\u0430\u044f+\u0437\u0430\u0449\u0438\u0442\u0430' >>> print urllib.unquote(url).decode('utf8') example.com?title=правовая+защита
如果你正在使用Python 3
>>> from urllib import parse >>> parse.unquote("""example.com?title=%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D0%B2%D0%B0%D1%8F+%D0%B7%D0%B0%D1%89%D0%B8%D1%82%D0%B0""") 'example.com?title=правовая+защита'