在 Python 2.7 中,给定一个像 的 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,我如何将其解码为预期结果example.com?title==правовая+защита?
我试过了url=urllib.unquote(url.encode(“utf8”)),但似乎给出了错误的结果。
为了在 Python 2.7 中正确解码 URL 编码的字符串,尤其是在处理非 ASCII 字符(如西里尔字母)时,您应该urllib.unquote结合使用.decode('utf8')来
urllib.unquote
.decode('utf8')
方法如下
import urllib url = u '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' # Decode the URL-encoded string and then decode the UTF-8 bytes into a Unicode string decoded_url = urllib.unquote(url).decode('utf8') print(decoded_url)
urllib.unquote(url)
%xx
example.com?title=правовая+защита
这种方法可确保 URL 被正确解码,并且非 ASCII 字符按预期显示。