Urlencode Python中的西里尔字符

时间:2014-06-15 23:19:17

标签: python string urlencode

我需要将西里尔字符串转换为Windows-1251编码的urlencoded版本。对于以下示例字符串:

  

Моцарт

正确的结果应该是:

  

%CC%EE%F6%E0 F0%%F2

在PHP中,我只会执行以下操作:

$request = urlencode(iconv("UTF-8", "windows-1251", "Моцарт"));
echo $request;

如何在Python中实现相同的目标?

2 个答案:

答案 0 :(得分:6)

在字符串上使用decodeencode方法,然后使用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'