[Python-de] Usenet-Kodierung

Martin v. Löwis martin at v.loewis.de
Don Jun 5 19:56:58 EDT 2003


"Lutz Schroeer" <latz at elektroelch.de> writes:

> Gibt es ein Python-Modul, mit dem ich das wieder dekodieren kann? 

Das Email-Paket macht das.

> Wenn  nicht, wo finde ich Informationen über das Format?

RFC 2047: http://www.faqs.org/rfcs/rfc2047.html

Es gibt zwei Möglichkeiten, so einen Header zu verarbeiten.
A) Man repräsentiert ihn als eine Liste von Paaren (encoding, bytes)
B) Man repräsentiert ihn als einen Unicode-String, indem man nämlich
   für die Repräsentation A) den Algorithmus

   res = u""
   for enc,bytes in chunks:
      res += unicode(bytes, enc)

   anwendet. Der sich ergebende Unicode-String ist einfacher zu
   verarbeiten; dieser Ansatz setzt aber voraus, dass man für alle
   beteiligten Encodings einen Codec hat.

"Naïve" Implementierungen von RFC 2047 übersehen oft, dass in einem
Header mehrere verschiedene Encodings verwendet werden dürfen.

Ciao,
Martin