Преобразование строки URL в обычную строку в python ( %20 в пробел и т.д.) - программирование
Подтвердить что ты не робот

Преобразование строки URL в обычную строку в python ( %20 в пробел и т.д.)

Есть ли какой-либо способ в python для этого → % CE% B1% CE% BB %20 в это: "αλ", что является его реальным представлением?

Спасибо заранее!

4b9b3361

Ответ 1

Для python 2:

>>> import urllib2
>>> print urllib2.unquote("%CE%B1%CE%BB%20")
αλ 

Для python 3:

>>> from urllib.parse import unquote
>>> print(unquote("%CE%B1%CE%BB%20"))
αλ

И вот код, который работает во всех версиях:

try:
    from urllib import unquote
except ImportError:
    from urllib.parse import unquote

print(unquote("%CE%B1%CE%BB%20"))

Ответ 2

Здесь есть два кодировки. Ваша строка сначала была закодирована как UTF-8, тогда каждый байт был процентным кодированием.

Чтобы получить исходную строку назад, вам нужно сначала ее не авторизовать, а затем декодировать ее:

>>> import urllib
>>> s = '%CE%B1%CE%BB%20'
>>> result = urllib.unquote(s).decode('utf8')
>>> print result
αλ 

Обратите внимание, что для отображения значения требуется консоль с поддержкой Unicode (если вы получите сообщение об ошибке с оператором печати, попробуйте запустить ее в IDLE).