hi Du;
Die erwartet aber für den zu codierenden String scheinbar iso-8859-1. Oh Wunder!
Nein. mb_encode_mimeheader()
erwartet, dass mb_internal_encoding()
gesetzt wurde.
Also machen wir das mal und gucken Ergebnis:
mb_internal_encoding("UTF-8");
echo mb_encode_mimeheader(utf8_decode('€')), "\n";
echo mb_encode_mimeheader('€');
Siehst Du was? '4oKs' ist die korrekte Base64-Kodierung für das EUR-Zeichen. Wenn Du vorher ein utf8_decode('€') schaltest, ist das Ergebnis nur ein Byte, darstellbar als Fragezeichen oder als Base64 'Pw=='.
Die Funktionen machen schon das Richtige, Du musst die nur richtig anwenden.
Horst