web-dev-qa-db-fra.com

Comment décoder une chaîne (doublement) 'encodée en URL' dans python

J'ai essayé de décoder une chaîne url-encoded De la manière suivante

some_string = 'FireShot3%2B%25282%2529.png'
import urllib
res = urllib.unquote(some_string).decode()
res
u'FireShot3+%282%29.png'

La chaîne d'origine est FireShot3 (2).png. Toute aide serait appréciée.

Réponse: urllib.unquote_plus(urllib.unquote_plus(some_string)) en raison d'un double encodage.

21
user1986059

Votre entrée est codée double . Utilisation de Python 3:

urllib.parse.unquote(urllib.parse.unquote(some_string))

Production:

'FireShot3+(2).png'

vous avez maintenant le + la gauche.

Modifier:

Utiliser Python 2.7 c'est bien sûr:

urllib.unquote(urllib.unquote('FireShot3%2B%25282%2529.png'))
30
user1907906

urllib.unquote_plus(urllib.unquote_plus(some_string)) FireShot3 (2).png

9
user1986059