dedlfix: Ausgabe von DB-Abfragen in UTF-8

Beitrag lesen

echo $begrüßung;

Wenn die Kodierungs-/Kollationsangabe eines Feldes geändert wird, wird dabei auch der Feldinhalt umkodiert. Es gibt danach keine "alten Datensätze".
Ach, und warum wird genau _deswegen_ hier immer wieder nachgefragt? Und warum wird genau für solche Suituationen immer wieder SET NAMES utf8 empfohlen?

SET NAMES und die Kodierung der Felder sind zwei verschiedene Dinge. Die Kodierung der Felder ist unabhängig von der Kodierung, die bei der Kommunikation mit einem Client verwendet wird. SET NAMES stellt die Kodierung der Clientverbindung ein. Die hat auch einen Defaultwert. Wenn du nun annimmst, nach der Umstellung der Feldkodierung die Daten in der Feldkodierung zu erhalten ist das ein Irrtum. Für die Verbindungskodierung gilt immer noch deren (vor)eingestellter Wert. Wenn Feldkodierung und Verbindungskodierung unterschiedlich sind, versucht MySQL die Daten umzukodieren. Das geht natürlich nicht in jede Richtung verlustfrei, aber das ist ein anderes Thema.

Es gibt immer wieder diese Probleme, weil man meist übersehen hat, die Verbindungskodierung auszuhandeln. Beide Seiten sprechen dann verschiedene Sprachen, weswegen es Probleme beim Interpretieren der Daten gibt.

Wenn vorher der Inhalt zur Kodierung passte und in eine Richtung umgestellt wurde, die alle ursprünglichen Zeichen repräsentieren kann, dann gibt es dabei auch keine Probleme.
Das habe ich anders erlebt. Da passte eben nach der Umstellung der Kollation garnix.

Wenn man ein System nicht verstanden hat, ist es ganz natürlich, dass man Fehler macht. Probier es doch einfach noch einmal. Orientieren kannst du dich dabei an einem Versuch, den ich vor einger Zeit mal unternahm: </archiv/2007/7/t157019/#m1021663>

echo "$verabschiedung $name";