Tom: Welche Codierung ist eingestellt?

Beitrag lesen

Hello,

Ich würde gerne mit PHP den alten und neuen Inhalt eines Textfeldes vergleichen. Das ganze funktioniert auch solange, bis das Textfeld entweder Umlaute oder Zeichen wie " oder HTML-Code enthält.

Ich tippe mal wieder auf ein UTF-8-Problem.

Mit welchem Editor bearbeitest Du Deine Scripte? In welcher Codierung speichert der ab?
Unter welchem Zeichnsatz lässt Du Deinen Browser arbeiten? ISO-8859-1 oder utf-8 oder noch 'was anderes? Dazu solltest Du wissen, welches default-Character-Set beim Server eingestellt ist.

Wenn Du im Editor noch in "Ansi" (also iso8859-1) speicherst, der Browser aber utf-8 liefert, dann sind natürlich die 1-Byte-Codes des Editors und die Multibyte-Codes des Browsers nicht mehr gleich.

Testen, was der Browser liefert, mit http://web-sniffer.net oder einem anderen Tool, z.B. einer Firefox-Extension für die Anzeige der HTTP-Header

oder anzeigen lassen als Hex-Codierter String. Der wird nicht nochmal "verkurbelt" bei der Anzeige, weil alle Zeichen aus dem ersten Block (0-127) stammen.

Außerdem könnte es helfen, das Script dann auch vollständig zu überarbeiten und die Multibyte-Funktionen zu verwenden anstelle der Einbyte-Stringfunktionen
http://de3.php.net/manual/de/ref.mbstring.php

Viel Spaß[tm] beim Überarbeiten der Scripte...

Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau
Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)