Python用urllib.quote编码字符

Sau*_*ila 22 python encoding urllib

我正在尝试编码非ASCII字符,以便我可以将它们放在网址中并使用它们urlopen.问题是我想要一个像JavaScript这样的编码(例如编码ó%C3%B3):

encodeURIComponent(ó)
'%C3%B3'
Run Code Online (Sandbox Code Playgroud)

urllib.quote在Python收益ó%F3:

urllib.quote(ó)
'%F3'
Run Code Online (Sandbox Code Playgroud)

我想知道如何encodeURIComponent在Python中实现像javascript一样的编码,以及如果我可以编码ISO 8859-1像中文这样的非字符.谢谢!

Bry*_*yan 29

你想确保你使用unicode.

例:

import urllib

s = u"ó"
print urllib.quote(s.encode("utf-8"))
Run Code Online (Sandbox Code Playgroud)

输出:

%C3%B3


Mes*_*ssa 14

Python 3中urllib.quote已更名为urllib.parse.quote.

同样在Python 3中,所有字符串都是unicode字符串(字节字符串被​​调用bytes).

例:

from urllib.parse import quote

print(quote('ó'))
# output: %C3%B3
Run Code Online (Sandbox Code Playgroud)