dedlfix: Problem mit MySQL Verbindungszeichensatz utf-8

Beitrag lesen

Hi!

Hiervon habe ich eine MySQL Datenbank auf utf8_general_ci in der Zeichensatz / Kollation der MySQL-Verbindung eingestellt.

Du meinst, du hast im phpMyAdmin eingestellt, welche Kodierung er auf seinen Verbindungen zum Server verwenden soll. Nun, das nützt dir auf anderen Verbindungen gar nichts. Für jede Verbindung musst du nach deren Aufbau die zu verwendende Kodierung aushandeln, wenn du nicht irgend einen System-Default-Wert haben willst.

Nun ist es so, dass bei der Ausgabe von Datenbankergebnissen Zeichen wie ä ö ü etc. nicht richtig dargestellt werden!

An der Art der Nicht-Richtig-Darstellung kann ein geübtes Auge häufig ablesen, was schief läuft.

Nun meine frage, habe ich irgendetwas vergessen das die Datenbank mit utf-8 kommuniziert?

Ja, mysql_set_charset() und SET NAMES - wie schon gesagt - überschreibt den System-Default-Wert, der sonst bei jedem Verbindungsaufbau genommen wird. Übrigens: mysql_set_charset() wäre die richtigere Variante, weil damit auch das Verhalten von mysql_real_escape_string() angepasst wird, aber SET NAMES ist für alle ISO-8859-Kodierungen und UTF-8 ausreichend (nicht jedoch für einige asiatische Kodierungen).

Lo!