dedlfix: PHP+Mysql - UTF8 => Umlaute?!

Beitrag lesen

echo $begrüßung;

Ich vermute deine Datenbank liefert das UTF-8 nicht korrekt aus. In welchem Zeichensatz stellt den phpMyAdmin deine Inhalte dar? Sicher in utf-8?

Was sich der phpMyAdmin selbst einstellt hat keine Auswirkungen auf andere Scripte. Es ist nur interessant, was der PMA über die Default-Einstellungen MySQLs erzählt, siehe Seite MySQL-System-Variablen und dort, wenn zwei Zeilen pro Wert vorhanden sind, die Zeile "Globaler Wert".

Auf den ersten Blick sieht für mich jedenfalls alles richtig aus...

Auch ich kann aus der Beschreibung keinen Fehler entnehmen.

Probiere als Querry auch mal: "SET CHARACTER SET utf8" bzw. setze dein utf8 in anführungsstriche. ("SET NAMES 'utf8'")

SET CHARACTER SET sollte man zugunsten von SET NAMES nicht verwenden, wenn man nicht den Unterschied zwischen beiden Statements verstanden hat, und diesen explizit haben will. Denn mit SET CHARACTER SET kann es bei ungünstiger Konfiguration des Wertes character_set_database zu Datenverlust in Richtung MySQL kommen.
Für die Richtung zum Client spielt der Unterschied keine Rolle, auch werden die Anführungszeichen um das utf8 nicht benötigt.

Als nächsten Schritt schlage ich vor, die aktuellen Kodierungsparameter ausgeben zu lassen

SHOW VARIABLES LIKE "char%"

Dies sollte natürlich in dem Script erfolgen, das fehlerhaft arbeitet, _nicht_ im phpMyAdmin. Außerdem sollte diese Ausgabe an der Stelle eingefügt werden, an der derzeit die Daten fehlerhaft abgefragt werden.

echo "$verabschiedung $name";