【发布时间】:2013-09-27 21:38:50
【问题描述】:
我的网站是这样的:
http://abc.com/hsdl-3201%23008-lite-on-12275800/hsdl-3201%23008-lite-on-12275800
很明显,因为有些奇怪的字符不适合 URL 格式,并且它们已被编码为 %20 之类的字符。我想知道如何轻松将其解码回包含原始字符的 python 字符串.
谢谢。
【问题讨论】:
我的网站是这样的:
http://abc.com/hsdl-3201%23008-lite-on-12275800/hsdl-3201%23008-lite-on-12275800
很明显,因为有些奇怪的字符不适合 URL 格式,并且它们已被编码为 %20 之类的字符。我想知道如何轻松将其解码回包含原始字符的 python 字符串.
谢谢。
【问题讨论】:
Python 3
from urllib.parse import unquote
Python 2
from urllib import unquote
然后
unquote('http://abc.com/hsdl-3201%23008-lite-on-12275800/hsdl-3201%23008-lite-on-12275800')
#>>> 'http://abc.com/hsdl-3201#008-lite-on-12275800/hsdl-3201#008-lite-on-12275800'
如果您正在为解析表单执行此操作,还请检查 unquote_plus,其中空格编码为 "+",因此需要解码。
【讨论】:
来自文档:
urllib.unquote(string) 用单个字符替换 %xx 转义 等价的。
示例:
unquote('/%7Econnolly/')产生'/~connolly/'。
【讨论】: