Преобразование строки URL в обычную строку в python ( %20 в пробел и т.д.)
Есть ли какой-либо способ в python для этого → % CE% B1% CE% BB %20 в это: "αλ", что является его реальным представлением?
Спасибо заранее!
Ответы
Ответ 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).