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