Transformer une chaîne D'URL en chaîne normale en python (%20 dans l'espace, etc))

y a-t-il un moyen en python de transformer ceci - > %CE%B1%CE%BB%20 en ceci: "αλ" Quelle est sa représentation réelle?

Merci d'avance!

20
demandé sur hytromo 2012-08-02 01:48:46

3 réponses

pour python 2:

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

pour python 3:

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

Et voici le code qui fonctionne dans toutes les versions:

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

print(unquote("%CE%B1%CE%BB%20"))
47
répondu Igor Chubin 2018-01-03 06:37:12

Il y a deux encodages en jeu ici. Votre chaîne a d'abord été codés comme UTF-8, puis chaque octet a été % codé.

pour récupérer la chaîne originale, vous devez d'abord la décompresser, puis la décoder:

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

notez que vous avez besoin d'une console Unicode pour afficher la valeur (si vous avez une erreur avec la déclaration print, essayez de l'exécuter dans IDLE).

9
répondu Mark Byers 2012-08-01 21:52:01

python 3 réponse

import urllib urllib.parse.unquote('/El%20Ni%C3%B1o/') rendements ' / El Niño/'

source

0
répondu olmerg 2018-06-26 19:16:55