echo $begrüßung;
Beim Importieren mit phpMyAdmin werden die Umlaute irgendwie falsch importiert.
Wo könnte der Fehler liegen?
Vielleicht eine teilweise Missachtung der beiden Prinzipen: a) jedes beteiligte System muss mit der Kodierung umgehen können, b) bei einer Übertragung muss die zu verwendende/verwendete Kodierung ausgehandelt/angegeben werden.
- MySQL Tabellen/Felder und eingefügter Inhalt sind korrekt UTF-8.
Woraus schlussfolgerst du das, bzw. wie hast du das geprüft? Und welche Kodierung handelst du für die Verbindung zwischen Client und Server aus? Außerdem ist die Angabe der Tabellenkodierung unwichtig, weil das nur ein Defaultwert für neu zu erstellende Felder ist. Die Feldkodierungsangabe ist entscheidend.
- Zu grundeliegende Textdatei (Textdatei wird nicht neu erzeugt, sondern dupliziert, um vorhanden Inhalt mit in Backup zu holen) ist auch UTF-8.
Woraus schlussfolgerst du das, bzw. wie hast du das geprüft?
- Die Darstellung der Umlaute nach dem Import überprüfe ich auf der Webseite (nicht in phpMyAdmin).
Wie genau gehst du dabei vor?
Bei ein paar Nachforschungen habe ich herausgefunden, dass utf8_encode() vor dem Schreiben in die Textdatei das Problem mit den Umlauten teilweise löst.
Wann immer du denkst, utf8_encode() oder utf8_decode() verwenden zu müssen, hast du mit hoher Wahrscheinlichkeit einen gravierenden Fehler in der Verarbeitungskette. Wenn utf8_encode() ein Problem löst, und die Quelle nicht garantiert ISO-8859-1 (wirklich ISO-8859-1, kein als ISO-8859-1 getarntes Win-1252) ist, dann hat irgendwer/-was vermutlich eine verlustbehaftete Konvertierung durchgeführt.
Nur die groß geschriebenen Umlaute werden noch falsch dargestellt. Also ö geht, aber Ö.
Vermutlich hast du ein Kodierungen-Chaos. Eine Hexwerte-Analyse kann Aufschluss geben, was da konkret schiefgelaufen ist, falls dich das interessiert.
echo "$verabschiedung $name";