Hi!
Ich erzeuge mit meinem PHP Skript (UTF-8) eine Datei namens "läöü.txt"
Bist du sicher, dass das Dateisystem des Servers UTF-8-kodierte Dateinamen haben möchte?
und er wird mir im Skript (wenn ich den Inhalt des Ordners ausgebe) auch so angezeigt.
Das Dateisystem, angenommen es denkt, die Dateinamen wären ISO-8859-1, stört es nicht, wenn da "komische Zeichen" ankommen. Es legt sie einfach so ab. Wenn du dir diese komische Bytefolge wieder als UTF-8 interpretierst, sieht alles in Ordnung aus. Ist es aber nicht, ...
Wenn ich per FTP (oder lokal) mir den Ordner anschaue, dann finde ich die Datei "läöü.txt" vor.
... wenn du dir die Sache mit einem anderen Programm ansiehst, das denkt, es bekäme ISO-8859-1
Jetzt habe ich schon mit utf8_decode rumgespielt, was mir aber nur das umgekehrte Ergebnis bringt (lesbare Dateinamen per FTP, aber nicht im Skript).
Wenn du es richtig einsetzt, also in Richtung Dateisystem stets ISO-8859-1 sprichst, dann scheint mir, wirst du mit diesem Server keine Probleme haben.
Jetzt könnte ich alle Abfragen und Anweisungen durch utf8_decode/_encode schicken, aber ist das dann "sicher"?
Sicher in welcher Hinsicht?
Wie bekomme ich heraus unter welchem "encoding" mein Webserver läuft? Ist das einheitlich, oder läuft ein chinesischer Server dann unter einem anderen?
Frag deinen Systemverwalter. Es gibt diverse Betriebssysteme, die alle was anderes machen können. Eine generelle Antwort darauf gibt es nicht. PHP jedenfalls kümmert sich wenig um Zeichenkodierungen, in Richtung Dateisystem ist da gleich gar nichts einstellbar.
Lo!