Mailinglisten-Archive |
Laura Reising wrote: > Gegeben sei der String: > "=?iso-8859-1?Q?M=FC=DFiggang?= ist aller Laster Anfang" eMail-Header erlauben nur 7bit-ASCII-Zeichen, deshalb müssen z.B. deutsche Umlaute irgendwie 'verpackt' werden. wie das zu geschehen hat definiert RFC2047 Kurzfassung: Wörter mit Sonderzeichen werden gekapselt in einem String, der mit '=?' beginnt und mit '?=' endet, dazwischen stehen 3 durch '?' getrennte Felder diese enthalten: - den verwendeten Zeichensatz, hier iso-8859-1 bzw. Latin1 - die Codierung: 'B' für binär, 'Q' für 'quoted printable' empfohlen wird die Benutzung der Variante, die das kürzere Ergebnis liefert, praktisch hat 'B' aber im europäisch- amerikanischen Sprachraum keine Bedeutung (anders sieht das z.B. in Asien aus) - den eigentlichen codierten text > Ich möchte (welch Wunder!): > "Müßiggang ist aller Laster Anfang" > daraus machen. > Gibt es eine Art Funktion ISO_8859_Q_decode() ? es gibt zum einen imap_mime_header_decode() in den imap extensions diese Funktion sollte mit allen Zeichensätzen, nicht nur mit ISO-8859 klarkommen (verfügbar in PHP4 und im PHP3 snapshot, allerdings nicht in 3.0.16) > Oder hat jemand schonmal sowas gebastelt (will keinen Code klauen - > vielleicht nur Anregungen) ? oder Q&D, aber normalerweise ausreichend: function rfc2047_decode($text) { $text = str_replace("_"," ",$text); return quoted_printable_decode( ereg_replace("=\?iso-8859-[1234567890]*\?Q\?([^\?]*)\?=","\\1" ,$text)); } -- Hartmut Holzgraefe hartmut_(at)_six.de http://www.six.de
php::bar PHP Wiki - Listenarchive