dedlfix: PHP Codierungs Problem

Beitrag lesen

Tach!

Nun sind leider die eMails immer unterschiedlich codiert und ich muss diese in eine einheitliche "Form" bringen.

Möglichkeit 1: Den entsprechenden Header der Mail auslesen, dann weißt du, in welcher Kodierung die Mail daherkommt. Zumindest in der Theorie. Einige kaputte Clients können auch eine Angabe setzen, die nicht zur tatsächlich verwendeten Kodierung passt. Gefühlt sind das jedoch meist Mails, deren Inhalt man sowieso nicht haben möchte.

Möglichkeit 2: Du ignorierst den Header und prüfst stattdessen, ob die Mail gültiges UTF-8 ist. Alle Bytes größer als 7F müssen in einem bestimmten Format daherkommen (siehe beispielsweise Wikipedia zu UTF-8). Hast du ungültige Sequenzen in der Mail, dann wird es wohl kein UTF-8 sein. In Ausnahmefällen liefert dieser Test aber auch False-Positives. Wenn es kein gültiges UTF-8 ist, sondern eine aus der ISO-8859-Familie, dann hast du schlechte Karten, weil man diese kaum ohne Intelligenz oder Wörterbuchtests diverser Sprachen erraten kann. Du kannst dann praktischerweise lediglich von UTF-8 und Nicht-UTF-8 ausgehen und letzeres als ISO-8859-1 annehmen. Mit vermutlich recht geringer Restfehlerquote, solange du nur Mails aus deutschsprachigen oder westeuropäischen Gegenden erwartest.

dedlfix.