Moin!
der Header funktioniert so wenigstens ordentlich.
$subject = 'Text zum Ändern';
$subject = utf8_encode($subject);
$subject = '=?utf-8?b?'.base64_encode($subject).'?=';Naja, etwas brutal, denn das Theater nach RFC2047 ist nur nötig, wenn der Header-Wert nicht ausschließlich aus ASCII-Zeichen besteht (
/^[\x20-\x7E]*$/
trifft für den Wert nicht zu). Außerdem ist es nicht notwendig, den gesamten Header-Wert zu escapen, man *darf* auch nur Teile escapen.
Es ist aber die simpelste Methode, die man anwenden kann, ohne komplexe Stringoperationen auspacken zu müssen. Ansonsten müßte man jedes Zeichen darauf prüfen, ob es in 7-Bit-ASCII enthalten ist, und andernfalls das Escaping drumherumstricken. Und gerade bei UTF-8 ist das doch etwas fummeliger, zumal man am Ende ja vermutlich nicht jedes Zeichen einzeln escapen will, sondern vermutlich zusammenhängende Zeichen in einer Verpackung hätte.
- Sven Rautenberg
"Love your nation - respect the others."