echo $begrüßung;
var data2send = "filename="+dbName;
data2send += "&data="+escape(changeDataForExport());
saveDB_ajax_anfrage.send(data2send);
Du wendest zwar escape() auf deine zu exportierenden Daten an, aber nicht auf dbName. Wenn da also Zeichen jenseits von ASCII drinstehen werden die von send() UTF-8-kodiert. So sieht es die Implementation der Browser und der W3C-Standardisierungsvorschlag vor. Mit escape() bringst du Nicht-ASCII-Daten (und einige Steuerzeichen) in eine ASCII-kompatible Kodierung. Da sich escape() nur um ISO-8859-1 kümmert, bekommst du schon beim €-Zeichen unbrauchbare Ergebnisse.
escape('ä-€') ergibt im Firefox %E4-%u20AC. Beim Dekodieren liest man aus dem %E4 ein ISO-8859-1-ä. Nun kommt ein UTF-8-€ dahergelaufen, und was nun? Soll der bisherige 'ä-'-String nach UTF-8 umkodiert werden, damit das € drin aufgenommen werden kann? Das hätte zur Folge, dass die nachfolgenden Prozesse mit der UTF-8-Kodierung umzugehen wissen müssen. Du siehst, das gibt ein großes Kuddelmuddel.
Wende auf der Javascript-Seite die Funktion encodeURI() auf das an, das du hinter filename und data hängen willst. Das ergibt eine UTF-8- plus URL-Kodierung. Die URL-Kodierung entfernt PHP selbständig. Übrig bleibt ein UTF-8-kodierter String. Wenn du den unter PHP mit utf8_decode() unter Verlust aller Nicht-ISO-8859-1-Zeichen zu ISO-8859-1 machen willst, kannst du das da vor der Weiterverarbeitung tun.
Auf dem Rückweg zum Client gib einen Content-Type-Header mit passender charset-Angabe an. Wenn das mit ISO-8859-1 nicht funktionieren sollte, weil einige Browser das vielleicht ignorieren (mir fehlt da die konkrete Erfahrung), dann sollten auf alle Fälle eine charset-Angabe von UTF-8 plus utf8_encode() auf die Werte zum Erfolg führen.
Hilft der ganze Code noch beim Helfen?
Code hilft immer dann, wenn man als Außenstehender damit das Problem nachvollziehen kann, und er nicht zu viel für das Problem Irrelevantes enthält. Am besten ist es, wenn du das Problem in einer neuen Datei und mit dem geringstmöglichen Code nachzuvollziehen versucht. Manchmal stellt sich als Nebeneffekt bei solch einer Aufbereitung und Problemisolierung heraus, dass die Ursache gar nicht an der vermuteten Stelle liegt. Und das hilft ja auch bei der Ursachenforschung.
echo "$verabschiedung $name";