Как декодировать (двукратно) строку "url-encoded" в python
Происходит декодирование строки url-encoded
следующим образом
some_string = 'FireShot3%2B%25282%2529.png'
import urllib
res = urllib.unquote(some_string).decode()
res
u'FireShot3+%282%29.png'
Оригинальная строка FireShot3 (2).png
. Любая помощь будет оценена.
Ответ:
urllib.unquote_plus(urllib.unquote_plus(some_string))
из-за двойного кодирования.
Ответы
Ответ 1
Ваш вход закодирован в два раза. Использование Python 3:
urllib.parse.unquote(urllib.parse.unquote(some_string))
Вывод:
'FireShot3+(2).png'
теперь у вас есть +
слева.
Edit:
Используя Python 2.7, это, конечно же, это:
urllib.unquote(urllib.unquote('FireShot3%2B%25282%2529.png'))
Ответ 2
urllib.unquote_plus(urllib.unquote_plus(some_string))
FireShot3 (2).png