我需要将西里尔字符串转换为Windows-1251编码的urlencoded版本。对于以下示例字符串:
Моцарт
正确的结果应该是:
%CC%EE%F6%E0 F0%%F2
在PHP中,我只会执行以下操作:
$request = urlencode(iconv("UTF-8", "windows-1251", "Моцарт"));
echo $request;
如何在Python中实现相同的目标?
答案 0 :(得分:6)
在字符串上使用decode
和encode
方法,然后使用urllib.quote
import urllib
print urllib.quote(s.decode('utf8').encode('cp1251'))
打印
%CC%EE%F6%E0%F0%F2
答案 1 :(得分:3)
在Python 3中,使用quote()
中的urllib.request
函数:
from urllib import request
request.quote("Моцарт".encode('cp1251'))
# '%CC%EE%F6%E0%F0%F2'