echo $begrüßung;
Die Lösung war wirklich so einfach wie genial. Ich habe das SET CHARACTER SET entfernt und es funktioniert wieder. Seltsamer Weise sind aber alle alten Einträge weiterhin Ketten von Fragezeichen, die sind also wohl unwiederbringlich verloren. Ich schätze mal, da hat mein Provider irgendwas vermurkst, ich habe nämlich sicher nichts geändert.
Wenn du dir mal im MySQL-Handbuch anschaust, welche Parameter von SET CHARACTER SET auf welche Weise geändert werden und welche Auswirkungen diese Parameter haben, dann wirst du wissen, warum da nichts mehr zu retten ist, und dass der Provider unschuldig ist, wenn er es nicht war, der da SET CHARACTER SET zusammen mit der Datenbank-Kodierung Latin1 hinzugefügt hat.
Vom Client kommendes wird gemäß character_set_client interpretiert und werden vor ihrer Weiterverarbeitung nach character_set_connection umkodiert. S.C.S. setzt diesen Wert auf den Wert, der für die Datenbank konfiguriert wurde. Alle Zeichen, die in Latin1 vorhanden sind, sollten es also überlebt haben. Alle anderen können nicht nach Latin1 umkodiert werden und gehen verloren. Als Ersatz wird dann eben das Fragezeichen eingefügt.
Die Funktion mysql(i)_set_charset() habe ich mir angesehen (was bedeutet eigentlich das i in Klammern?) [...]
Es gibt schon seit längerem die MySQL Improved Extension, abgekürzt mysqli.
Gibt es dafür vielleicht eine Seite, auf der man sieht was bei einer solchen Übertragung beachtet werden muss? Oder reicht es dafür die Datenbank zu sichern und einfach über phpmyadmin wieder in die neue Version 5 einzuspielen?
Die für den Anwender einfachste Möglichkeit wird sein: Dump mit explizit angegebener Kodierung anfertigen, Dump mit explizit angegebener Kodierung ins neue System einspielen, mit phpMyAdmin Ergebnis kontrollieren.
echo "$verabschiedung $name";