【问题标题】:Urlencode cyrillic characters in Python在 Python 中对西里尔字符进行 Urlencode
【发布时间】:2014-06-16 07:34:50
【问题描述】:
我需要在 Windows-1251 编码中将西里尔文字符串转换为其 urlencoded 版本。对于以下示例字符串:
Моцарт
正确的结果应该是:
%CC%EE%F6%E0%F0%F2
在 PHP 中,我只需执行以下操作:
$request = urlencode(iconv("UTF-8", "windows-1251", "Моцарт"));
echo $request;
如何在 Python 中实现同样的目标?
【问题讨论】:
标签:
python
string
urlencode
【解决方案1】:
对字符串使用decode和encode方法,然后使用urllib.quote
import urllib
print urllib.quote(s.decode('utf8').encode('cp1251'))
打印
%CC%EE%F6%E0%F0%F2
【解决方案2】:
在 Python 3 中,使用 urllib.request 中的 quote() 函数:
from urllib import request
request.quote("Моцарт".encode('cp1251'))
# '%CC%EE%F6%E0%F0%F2'