2012-08-01 7 views

Respuesta

34

para Python 2:

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

para Python 3:

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

Y aquí está el código que funciona en todas las versiones:

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

print(unquote("%CE%B1%CE%BB%20")) 
+0

muchas gracias! esto hizo exactamente lo que yo quería! – hakermania

+19

Para ** Python 3 **: 'import urllib.request'' urllib.request.unquote (...) ' – user136036

9

Hay dos codificaciones en juego aquí. Su cadena se codificó primero como UTF-8, luego cada byte ha sido percent-encoded.

Para obtener la cadena original de nuevo que necesita para Fin de la cita por primera vez, y luego decodificarlo:

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

en cuenta que necesita una consola de Unicode con el fin de mostrar el valor (si se produce un error con la instrucción de impresión, intente ejecutarlo en IDLE).

+0

muchas gracias! decodificar ('utf8') era inútil para mí, sin embargo. los comités hicieron el trabajo! – hakermania

+0

esto no funciona. – Frank

+0

Pero lo hace. Acabo de probarlo para estar seguro (IDLE, py2.7) –

Cuestiones relacionadas