echo $begrüßung;
so ganz versteh ich es auch nicht.
Wenn von einer Datei die Kodierung unbekannt ist, gibt es keine technische Lösung, sie zweifelsfrei zu erraten.
Für XML ist festgelegt, dass die Kodierung bei einer fehlenden encoding-Angabe im XML-Vorspann UTF-8 ist. Wenn das ausgebende Programm die Datei nicht UTF-8-kodiert speichert, oder die verwendete Kodierung nicht im XML-Vorspann angibt, können verarbeitende Programme die Daten nicht selbständig lesen. Du musst dann irgendwie herausfinden, welche Kodierung vorliegt. Am besten durch Fragen des Herstellers. Falls der mit den Schultern zuckt, sollte der sich gefälligst mit der Problematik auseinandersetzen und fehlerfreie Dateien liefern. Wenn der das nicht kann, brauchst du entweder eine Möglichkeit, die beim Lesen zu verwendende Kodierung explizit zu überschreiben (z.B. Kommandozeilenparameter) oder musst die Dateien umkodieren (z.B. iconv). Für beide Varianten musst du aber wissen, welche Kodierung vorliegt. Ein einfacher Test ist, die Datei in einem Browser zu öffnen (möglicherweise die Endung in .txt umbenennen) und im Menü Ansicht->(Zeichen-)Kodierung die Kodierungen durchprobieren. Wenn die Anzeige der Nicht-ASCII-Zeichen dann richtig ist, ist schon mal eine recht hohe Wahrscheinlichkeit gegeben, dass die Datei in der gerade gewählten Kodierung gespeichert ist.
echo "$verabschiedung $name";