On Mon, Nov 05, 2001 at 03:41:11PM +0100, Thomas Hofer wrote:
Oliver Kiehl wrote (Montag, 5. November 2001 14:34):
sub mime_decode { $_ = shift; s/=\?iso-\d*-\d*\?(q|b)\?(.*)\?=/$2/gi && do { if ($1 eq 'q') { s/_/ /g; $_ = decode_qp($_); } else { $_ = MIME::Base64::decode($_); } }; # semicolon ist wichtig! return $_; }
ungetestet ;)
(immernoch)
Ihr solltet euch mal diese Testfälle zu Gemüte ziehen:
"=?ISO-8859-1?Q?kodiert1?=unkodiert=?ISO-8859-1?Q?kodiert2?="
"=?iso-8859-8?b?7eXs+SDv4SDp7Oj08A==?=unkodiert=?ISO-8859-1?Q?QPcodiert?="
beide muessten mit dem obigen Algorithmus funktionieren. Durch das s//g werden alle Instanzen in einer Zeile ersetzt. Wie schon in einer anderen Mail von mir erwaehnt, wird durch s//i Gross- und Kleinschreibung misachtet (aber am Ende richtig wieder eingesetzt)
"10+10=20=?ISO-8859-1?Q?=20?=" Das Format ist übrigens in RFC-2047 definiert.
Was bedeutet '10+10=20'? Ich habe jetzt keine Lust das RFC durchzulesen, aber wenn das der Klartext ist, duerfte das auch funktionieren. Gruss, Oliver