caracteres especiales

Ana Yndurain yndu en telecable.es
Mie Dic 10 18:59:00 CET 2003


Muchiiiiiisimas gracias. Me vino q ni pintao.

Eres un sol.

Gracias again (me estoy planteando seriamente ponerte en los
agradecimientos de mi proyecto ;) gracias)

Ana
.
El mié, 10-12-2003 a las 13:47, Chema Cortés escribió:
> LLevo con éste tres intentos de intentar responder. A ver si este es el
> definitivo :-P
> 
> Ana Ynduráin (España) escribió:
> 
> > Al cojer la cabecera from de algunos correos, me llegan nombres como el
> > siguiente:
> > 
> > From: Ana =?ISO-8859-1?Q?Yndur=E1in_=28Espa=F1a=29?= 		
> > 
> > En este caso es pq hay un acento y una eñe
> > 
> > Alguien me puede decir como "decodificar" esta cadena? Por mas que miro
> > no encuentro nada...
> 
> Es codificación mime (quoted-printable). Tienes varios módulos con los
> que manejar estas cabeceras. Más concretamente, échale un vistazo al
> módulo 'email'. Seguro que te será de mucha utilidad.
> 
> Si quieres hacerlo "a pelo":
> 
> >>> import mimify
> >>> s="From: Ana =?ISO-8859-1?Q?Yndur=E1in_=28Espa=F1a=29?="
> >>> print mimify.mime_decode_header(s)
> From: Ana Ynduráin (España)
> 
> 
> Una solución más "elaborada":
> 
> >>> import email
> >>> import email.Header
> >>> s="From: Ana =?ISO-8859-1?Q?Yndur=E1in_=28Espa=F1a=29?="
> >>> msg=email.message_from_string(s)
> >>> msg.keys()
> ['From']
> >>> email.Header.decode_header(msg["From"])
> [('Ana', None), ('Yndur\xe1in (Espa\xf1a)', 'iso-8859-1')]
> >>> #vamos a juntar todo en una sóla cadena
> >>> res=[]
> >>> for s,cod in email.Header.decode_header(msg["From"]):
> ...   if cod:
> ...      res.append(s.decode(cod))
> ...   else:
> ...      res.append(s)
> >>> print " ".join(res)
> Ana Ynduráin (España)
> 
> 
> >>> #Ésto último, como es costumbre,
> >>> #también se podía haber hecho en una sóla línea ;-)
> >>> res=[ ((cod and s.decode(cod)) or s)
> ...        for s,cod in
> ...          email.Header.decode_header(msg["From"]) ]
> >>> print " ".join(res)
> Ana Ynduráin (España)
> 
> 
> En cuanto a lo que comenta Marcos de mirarse el RFC del correo, hay que decir
> que la implementación en python está incompleta, y que sólo admite codificación
> en ISO-8859-1, aunque por otro lado, es la más habitual.
> 
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo/python-es
> 




Más información sobre la lista de distribución Python-es