echo $begrüßung;
Vorneweg: Tut mir leid, mich im Ton vergriffen zu haben. Ich war an dem Tag etwas griesgrämig.
Ist mir gar nicht aufgefallen. Vermutlich hatte ich die Lautsprecher ausgeschaltet gelassen.
Wenn ich also z.B. per phpMyAdmin die Kollation der DB, der Tabelle und der Felder auf einen anderen Zeichensatz umstelle, werden die Feldinhalte auch umgestellt?
Die Angaben bei Datenbank und Tabelle sind nur Defaultangaben für neu hinzukommende Elemente, wenn diesen keine Angabe explizit mit auf den Weg gegeben wurde. Letzten Endes zählt allein die Einstellung des Feldes. Wenn du Datenbank- und Tabellenkodierung umstellst, ändert sich an den Daten nichts. Es muss schon die Kodierungsangabe jedes Feldes einzeln angefasst werden.
Etwaige Inkonsistenzen bei der Ausgabe kommen dann daher, dass der Vorgabewert für den Zeichensatz der Verbindung nicht dem Zeichensatz der Feldwerte entspricht?
Ja, entweder aktuell nicht entspricht oder damals nicht entsprach, als die Daten zum Server gesendet wurden.
Es ist beispielsweise kein Problem, wenn zwar sowohl Feld- als auch Verbindungskodierung auf Latin1 stehen, der Client aber UTF-8 sendet. Die Bytefolge wird problemlos im Feld abgelegt. Beim Abfragen kommt auch genau die gleiche Bytefolge zurück und kann gemäß UTF-8 interpretieren werden. Doch wenn MySQL die Daten interpretieren soll, sieht es kein ä sondern die beiden Bytes xC3 xA4 und damit à und ¤, weil es sie gemäß Latin1 interpretiert. Bei einer Feldkodierungsänderung in diesem Zustand kommt natürlich auch nur Murks raus. Da muss zunächst der Inhalt der Kodierung angepasst werden. (Ich beschränke mich auf diese allgemeine Aussage, weil die konkrete Vorgehensweise vom Einzelfall und des bisher gemachten Fehlers abhängig ist.)
echo "$verabschiedung $name";