echo $begrüßung;
So weit ich das überblicken konnte sind alle Dateien im ISO-Format. Wenn ich jetzt aber so einen Kommentar speichere kommte der Text im UTF Format an. Genauer gesagt: Der Komentar wird über ajax an ein Skript geschickt und genau ab dem Zeitpunkt (anfang des Skriptes) bekomme ich nur noch Hyroglyphen bei Umlauten.
Nein, denn wie du richtig sagt, sind es UTF-8-kodierte Zeichen.
Habe es jetzt mit utf decode() gelöst. Mich würde aber trotzdem interessieren, wie sowas passieren kann.
AJAX verwendet immer UTF-8 beim Senden an den Server.
Wie kann ich denn verläßlich rausfinden in welchem Format meine Dateien sind?
Verlässlich? Theoretisch: gar nicht. Das ist prinzipbedingt nicht möglich. Praktisch: mit mehr oder weniger großen Fehlerquote. Du kannst durch Ausschlussverfahren feststellen, dass es eine bestimmte Kodierung nicht sein kann, weil deren Regeln nicht eingehalten werden. Dann bleiben aber immer noch jede Menge Kodierungen übrig, die es sein können. Um festzustellen, ob eine bestimmte Kodierung vorliegt, musst du den Text gemäß dieser Kodierung interpretieren und schauen, ob das Interpretationsergebnis sinnvoll ist. Dazu braucht es einiges an Intelligenz. Wenn du dich auf einige wenige mögliche Kodierungen beschränkst, kannst du teilweise einfach zum Ziel kommen. Beispielsweise: Wenn ein Text den Regeln von UTF-8 entspricht, wird es UTF-8 sein. Wenn nicht, ist es ISO-8859-1 (oder Windows-1252), wenn alle andere Zeichenkodierungen ausgeschlossen bleiben. Ich schrieb bewusst "wird sein" und nicht "ist", denn mein Lieblingsbeispiel zeigt, dass dem nicht so sein muss.
Wenn du vollständig auf UTF-8 umstellst, hast du die wenigsten Probleme. Wenn du mit eingeschränkten Zeichensätzen wie denen der ISO-8859-Familie arbeitest, hast du immer ein Verlustrisiko. Ein Browser arbeitet mit Unicode. Wenn er ISO-... schicken soll, muss er das umkodieren und muss bei den nicht enthaltenen Zeichen was anderes machen. Einige verfälschen das zu Nummerischen Zeichenreferenzen, andere lassen das Zeichen untern Tisch fallen.
echo "$verabschiedung $name";