Es gibt einige unschöne seiteneffeket wenn man bei Php mit UTF-8 konfrontiert wird. Das noch nervigere ist, das der Browser(in meinem Fall Firefox) versucht das Format selbst zu erkennen, d.h. erkennt der Browser eine Ausgabe als UTF-8 wird alles was ISO ist falsch dargestellt und immer umgegkehrt.
Fazit:
Da Php mit UTF-8 probleme hat immer beim bearbeiten von UTF-8 strings die ersatzstrinfunktionen benutzen (mb_strlen etc.) und Ausgaben nicht mixen - sonst Klapse net weit!
Notizen rund um das Thema Programmierung mit dem Schwerpunkt PHP und Zend Framework 2 (ZF2)
Dienstag, 8. März 2011
Montag, 7. März 2011
PHP: Notice: Unknown: Invalid quoted-printable sequence:
Wenn man versucht eine base64 - codierte mail mit imap_qprint() zu decodieren bekommt man die Fehlermeldung:
Notice: Unknown: Invalid quoted-printable sequence: =_NextPart_???? Content-Type: text/plain; charset="iso-8859-1 (errflg=3) in Unknown on line 0
Wobei ??? für den Delimiter steht. Dies kann abgefangen werden mit:
$parts=explode("base64",$emailstring);
if (1{
$partsa=explode("------",$parts[1]);
$emailstring=base64_decode($partsa[0]);
$emailstring=utf8_decode($emailstring);
}
else
{
$emailstring=imap_qprint($emailstring);//decodieren der nachricht
}
Allerdings wird hier nur der erste Teil der Mime-Mail übersetzt - wahrscheinlich gibt es bessere Lösungen war jedoch die am schnellsten mir eingefallen ist. Eine suche nach PHP Mime base64 ergibt bestimmt noch andere lösungen.
Notice: Unknown: Invalid quoted-printable sequence: =_NextPart_???? Content-Type: text/plain; charset="iso-8859-1 (errflg=3) in Unknown on line 0
Wobei ??? für den Delimiter steht. Dies kann abgefangen werden mit:
$parts=explode("base64",$emailstring);
if (1
$partsa=explode("------",$parts[1]);
$emailstring=base64_decode($partsa[0]);
$emailstring=utf8_decode($emailstring);
}
else
{
$emailstring=imap_qprint($emailstring);//decodieren der nachricht
}
Allerdings wird hier nur der erste Teil der Mime-Mail übersetzt - wahrscheinlich gibt es bessere Lösungen war jedoch die am schnellsten mir eingefallen ist. Eine suche nach PHP Mime base64 ergibt bestimmt noch andere lösungen.
PHP - imap_setflag_full funktioniert nicht
Nach langer suche - man muß bei imap_setflag_full auf die groß und kleinschreibung achten ein Flag \\answered funktioniert nicht nur \\Answered.
Abonnieren
Posts (Atom)