dedlfix: Umlaute und Sonderzeichen ändern

Beitrag lesen

Hi!

echo urlencode($_POST["Site"]); gibt aus: M%E4rchen.
Okay, das ist eine 1-Byte-Codierung, vermutlich ISO-8859-1. Dann ist wohl das Script selbst (vermutlich!) in UTF-8 codiert.

Das kann man daraus nicht erkennen. Man sieht nur, dass die POST-Daten ISO-8859-1-kodiert sind (andere Möglichkeiten lassen wir mal wegen Unwahrscheinlichkeit weg).

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
Hier behauptest du, das Dokument sei in ISO-8859-1 codiert - das ist aber anscheinend nicht wahr.

Warum nicht? Für das Problem ist das jedenfalls egal. Eine falsche Angabe hier wirkt sich nur auf die Anzeige von Nicht-ASCII-Zeichen im Browser aus.

Du hast ein generelles Problem, weil die Codierung von URL-Parametern nicht wirklich festgelegt ist.

URL-Parameter haben wir hier nicht, sonder ein per POST gesendetes Formular. Und die unterschiedlichen Kodierungen kommen nur dann zustande, wenn man URLs händisch eingibt. Wenn der Browser aus Formulardaten einen Querystring zusammenbaut, orientiert er sich an der Kodierung der Seite. Aber, wie gesagt, das interessiert bei diesem Problem nicht.

Lo!