Hi,
Wie gesagt, für meine Webanwendung im Browser und interner Speicherung in einer MySQL Db würde das gehen, aber mit den Dateien soll ja später weiter gearbeitet werden. z.b. angezeigt oder gedruckt.
das hatte ich nicht berücksichtigt - ich bin davon ausgegangen, dass die Dateien nur per PHP angelegt und auch wieder gelesen werden. Wenn sie noch durch eine andere lokale Anwendung verarbeitet werden, die dann auch wieder anständige Dateinamen sehen soll, wird's echt <quote origin="kaiderkobold">kompliziert und knifflig</quote>.
Für Windows (NTFS) musst Du UTF-16 benutzen. Dann sollte es Funktionieren.
Ich bin nicht überzeugt, dass das hilft. Es stimmt zwar, dass Windows intern UCS-2 verwendet (eine Abart von UTF-16), aber um das ausnutzen zu können, muss man bei allen API-Funktionen, die mit Dateinamen hantieren, die W-Varianten (Wide) verwenden. Das tut PHP bestimmt nicht. Die Standardfunktionen gehen aber stur von Windows-1252 aus (womit viele Zeichen wieder nicht dargestellt werdne können).
Allgemein ist das Dateisystem des Hosts *immer* eine Ungewissheit. Man weiß nicht, welche Codierung das OS bei seinen API-Funktionen erwartet, und es gibt auch keine Standards. Es könnte UTF-8 sein, oder UTF-16, oder manchmal auch einfach nur ASCII.
Ich weise aber nochmals darauf hin, dass vom Client gesendete Dateinamen nicht bedenkenlos ins Filesystem des Servers übertragen werden dürfen!
*sign*
So long,
Martin
Soziologen sind nützlich, aber keiner will sie haben.
Bei Informatikern ist es gerade umgekehrt.
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(