dedlfix: JavaScript / PHP / SQL... AJAX... Zeichenkodierung?

Beitrag lesen

echo $begrüßung;

Nein, das wäre nicht ganz mit deinem Problem vergleichbar. Von ISO-8859-1 auf UTF-8 zu wechseln bedeutet von westeuropäisch auf international umstellen

Naja. Ich nenns mal "sich aufs wesentliche beschränken".

Leider beschränken sich Anwender nicht "auf's Wesentliche". Die verwenden auch auf ISO-8859-1-Seiten bei Eingaben in Input/Textarea-Felder einfach deutsche typografische Anführungszeichen [*], die nicht in ISO-8859-1 enthalten sind. Die Browser sind dann so frei, eine Ersatzdarstellung in der Form &#xxx; draus zu machen und dir zu senden, und so landet es dann auch in der Datenhaltung. Da du ein sicherheitsbewusster Programmierer bist, wendest du htmlspecialchars() auf die auszugebenden Daten an und zeigst dann diese Ersatzdarstellung auf deiner Seite an, weil das & durch ein & ausgetauscht wurde. Und nun stehst du da und weißt nicht mit Sicherheit zu sagen, wann das & in deinen auszugebenden Daten gewollt ist und wann nicht.

Auch solche marginalen Probleme lassen sich durch den unwesentlich höheren Aufwand, konsequent mit einer allumfassenden Kodierung zu arbeiten, von vornherein umgehen.

echo "$verabschiedung $name";

[*] Auch (m-breite und n-breite) Gedankenstriche statt Bindestriche sieht man gelegentlich. Das trifft vor allem zu, wenn Anwender ihren Text in MS-Word vorschreiben, dort die automatische Zeichenersetzung nicht deaktiviert haben und dann diesen Text kopieren und in das Eingabefeld einfügen.