Sven Rautenberg: Umlaute ersetzen

Beitrag lesen

Moin!

Das Dateisystem muss nicht unbedingt die Kodierung verwenden, die du scriptintern verwendest.

Hm, das hilft mir jetzt nur bedingt. Wie überprüfe/änder/handle ich das denn dann?

So wie dein Fehlerbild aussieht: Das Dateisystem gibt ISO-8859-1 zurück, und dein Skript ist in UTF-8.

Dann zerstörst du mit utf8_decode() den Umlaut im Dateinamen (weil der in ISO ist), und kriegst stattdessen das Fragezeichen.

Mit utf8_encode() hingegen würde es vermutlich gehen. AAAAAABER: Warum würde es das? Woher weißt du das Encoding des Dateisystems? Kann garantiert sein, dass dein Skript immer auf Systemen läuft, die als Dateinamensystem ISO-8859-1 benutzen? Wohl kaum. Auf welchem Betriebssystem läuft dein Skript derzeit? Und ist das schon direkt der Server, auf dem die Sache auch später laufen soll?

- Sven Rautenberg