在Python中对西里尔字符进行URL编码
我需要把一个用西里尔字母写的字符串转换成它的URL编码版本,并且使用Windows-1251编码。比如说,下面这个字符串:
Моцарт
正确的结果应该是:
%CC%EE%F6%E0%F0%F2
在PHP中,我只需要这样做:
$request = urlencode(iconv("UTF-8", "windows-1251", "Моцарт"));
echo $request;
那么在Python中,怎么才能做到同样的事情呢?
2 个回答
4
在Python 3中,可以使用urllib.request
里的quote()
函数:
from urllib import request
request.quote("Моцарт".encode('cp1251'))
# '%CC%EE%F6%E0%F0%F2'
7
使用 decode
和 encode
方法处理字符串,然后用 urllib.quote
来编码。
import urllib
print urllib.quote(s.decode('utf8').encode('cp1251'))
打印输出
%CC%EE%F6%E0%F0%F2