Я провел много времени, насколько я новичок в Python.
Как я мог когда-либо расшифровать такой URL:
example.com?title=%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D0%B2%D0%B0%D1%8F+%D0%B7%D0%B0%D1%89%D0%B8%D1%82%D0%B0
к этому в Python 2.7: example.com?title==правовая+защита
url=urllib.unquote(url.encode("utf8"))
возвращает что-то очень некрасивое.
Все еще нет решения, любая помощь приветствуется.
Ответы:
Данные представляют собой байты в кодировке UTF-8 с экранированием в кавычках URL, поэтому вы хотите декодировать с помощью
urllib.parse.unquote()
, который обрабатывает декодирование из данных, кодированных в процентах, в байты UTF-8, а затем в текст, прозрачно:Демо-версия:
Эквивалент Python 2 есть
urllib.unquote()
, но он возвращает строку байтов, поэтому вам придется декодировать вручную:источник
+
- это пробел вx-www-form-urlencoded
данных ; вы бы использовали,urllib.parse.parse_qs()
чтобы разобрать это, или использоватьurllib.parse.unquote_plus()
. Но они должны появляться только в строке запроса, а не в остальной части URL.Если вы используете Python 3, вы можете использовать
urllib.parse
дает:
источник