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