dedlfix: Mit htmlspecialchars werden keine Umlaute angeziegt

Beitrag lesen

Tach!

Betrachte es als SEO-Maßnahme, wenn ich vom UTF-8 Zeichensatz statt von der UTF-8 Kodierung schreibe.

Im mysqld-Abschnitt einer my.cnf ist character-set-client eine Option, die keine andere Wirkung entfaltet, als eine Warnung ins Logfile zu schreiben. default-character-set und default-collation lassen den MySQL-Server gar nicht erst starten. Sie sind auch in der Dokumentation der Server-Optionen nicht enthalten.

Die Verwendung von

mysql_query('SET NAMES utf8');
  mysql_query('SET CHARACTER_SET utf8');

nacheinander ist auch nicht sinnvoll. Egal in welcher Reihenfolge man diese beiden Statements absetzt, das zweite überschreibt immer die vom ersten gemachten Einstellungen. Im Gegensatz zu SET NAMES hat aber SET CHARACTER SET (ohne Unterstrich!) noch eine unangenehme Nebenwirkung, wenn der Konfigurationswert der verwendeten Datenbank ungünstig gesetzt ist. Connection Character Sets and Collations

Zudem steht im Artikel auch nicht, dass die Kodierung der Felder auf UTF-8 stehen muss, damit da auch UTF-8 drin gespeichert werden kann. character-set-server ist nur ein Default-Wert für neu angelegte Datenbanken, nichts weiter. Bestehende Daten werden davon nicht angepasst. Der Konfigurationswert für Datenbanken ist seinerseits nur ein Defaultwert für neu angelegte Tabellen, zuzüglich der Nebenwirkung von SET CHARACTER NAMES. Der Konfigurationswert für Tabellen ist seinerseits nur ein Defaultwert für neu angelegte Felder. Erst die Feldangabe sagt etwas über die Kodierung des Inhalts aus. Wenn diese Feldkodierung nicht beachtet wird, nützt die korrekte Aushandlung beim Verbindungsaufbau wenig, denn beim Umkodieren zwischen Verbindung und Feld (bei unterschiedlichen Kodierungen) können Datenverluste auftreten.

dedlfix.