Firefox Zeichensatz

Nikon the Third

Erfahrenes Mitglied
Hallo.
Stell dir vor, du hast ein schönes kleines Formular zusammengestellt, welches aus einem simplen Textfeld besteht. Mit Submit Button natürlich.

Die Empfangsdatei des Formulars ist worker.php.
Nun macht die Datei folgendes mit den Daten:

[Textfeld hatte den Namen message]

$message = nl2br( htmlentities($message) );
echo $message;

Ist zwar nicht wahnsinnig sinnvoll, demonstriert aber das Problem. Nämlich folgendes:

Ich nehme nun den guten alten Internet Explorer und schreibe äöü in das Feld und ab damit.
Ausgabe: äöü
SUPER, alles stimmt.

Nun der selbe Versuch mit Firefox, auch äöü und senden.
Ausgabe: äöü
:confused:
Das gab mir den Rest.

Wie kommt Firefox dazu aus einem einfachen ä
zwei Byte zu machen?
195 und 164

Ich denke zwar dass es mit dem eingestellten Zeichensatz etwas zu tun hat, da kenne ich mich aber zu wenig aus...

Mein Formular verwendet enctype="multipart/form-data".

Danke für jede Antwort.
 
Zuletzt bearbeitet:
Welche Kodierung verwendest du bei der Ausgabe? Ist ein accept-charset-Attribut im Formular gesetzt?
 
Ich verwende kein accept-charset.
Die Ausgabekodierung ist nicht das schlimme, denn die htmlentities Funktion macht aus den Sonderzeichen diese Quotations (Ã, usw...)
 
Doch, gerade wenn beispielsweise UTF-8 als Ausgabe-Kodierung benutzt wird, dies jedoch nicht als Eingabe-Kodierung angegeben wurde, kann es zu solchen Fehlern kommen. Denn die htmlentities()-Funktion verwendet ISO 8859-1 als Standardkodierung. Als dritter Parameter kann dieser Funktion jedoch die gewünschte Zeichenkodierung übergeben werden.

Übrigens hat die UTF-8-Kodierung den Vorteil, dass kein Zeichen durch eine entsprechende Zeichenreferenz ersetzt werden muss – allerdings müssen die Zeichen vorher auch mit UTF-8-Kodierung gespeichert sein.
 
Zurück