dedlfix: Ausgabe von Sonderzeichen

Beitrag lesen

echo $begrüßung;

Anstatt der Umlaute ä,ö,ü werden mir bei der Ausgabe von Daten aus einer Datenbank auf der Website nur diese doofen Fragezeichen angezeigt. Seltsam dabei ist, dass in der Datenbank selbst die Umlaute dargestellt werden und erst beim Ausgeben auf der Page in die Fragezeichen wechseln.

Wie schaust du denn "in die Datenbank" hinein? Jegliches Datenanzeigen ist eine Ausgabe. Wenn du den phpMyAdmin nimmst, und der alles richtig anzeigt, dann sind schonmal deine Daten in Ordnung.

Wie üblich bei der Verarbeitung von Daten muss
a) ein beteiligtes System mit den Daten umgehen können und
b) das weiterreichende und das entgegennehmende System müssen sich bei der Übertragung verstehen.
Das gilt auch in Hinsicht auf Kodierungen.

Konkret heißt das im Falle MySQL für a), dass die String-Felder (die Felder!, nicht die Tabellen- oder Datenbankeinstellung) in einer passenden Kodierung konfiguriert sein müssen. Und b) MySQL und der Client müssen sich für ihre individuelle Verbindung auf eine Kodierung geeinigt haben. Das geht mit der PHP-Funktion mysql(i)_set_charset() oder zur Not mit einem SET NAMES-Statement, wenn das PHP zu alt ist und die Funktion nicht kennt.

Und dann gibt es selbstverständlich auch noch den Browser und die Verbindung zwischen PHP und dem Browser sowie den Fakt, dass PHP erst ab Version 6 ordentlich mit Mehrbytekodierungen umgehen kann, was aber nicht stört, wenn die Daten nur unbehandelt durchgereicht werden.

echo "$verabschiedung $name";