我正在尝试编码非ASCII字符,因此我可以将它们放在网址中并在urlopen
中使用它们。问题是我想要一个类似JavaScript的编码(例如将ó
编码为%C3%B3
):
encodeURIComponent(ó)
'%C3%B3'
但是python中的urllib.quote
会将ó
作为%F3
返回:
urllib.quote(ó)
'%F3'
我想知道如何在Python中实现像javascript的encodeURIComponent
这样的编码,以及如果我可以编码像中文这样的非ISO 8859-1
字符。谢谢!
答案 0 :(得分:29)
您想确保使用unicode。
示例:
import urllib
s = u"ó"
print urllib.quote(s.encode("utf-8"))
输出:
%C3%B3
答案 1 :(得分:7)
在 Python 3 中,fwrite()
已重命名为urllib.parse.quote
。
在Python 3中,所有字符串都是unicode字符串(字节字符串称为bytes
)。
示例:
stdout