在Python中对西里尔字符进行URL编码

3 投票
2 回答
6746 浏览
提问于 2025-04-18 09:53

我需要把一个用西里尔字母写的字符串转换成它的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

使用 decodeencode 方法处理字符串,然后用 urllib.quote 来编码。

import urllib
print urllib.quote(s.decode('utf8').encode('cp1251'))

打印输出

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

撰写回答