PHP, определяющий кодировку файловой системы

Мне нужно сохранить файлы с нелатинскими именами файлов в файле, используя PHP.

Я хочу сделать эту работу кросс-платформенной. Как узнать, какую кодировку я могу использовать для записи файла? Я понимаю, что многие современные файловые системы основаны на UTF-8 (это правильно?), Но я сомневаюсь, что Windows XP (например).

Итак, есть ли надежный механизм обнаружения?

Не ответом на ваш вопрос, но если вам не нужно выполнять обширные операции на уровне файловой системы (например, поиск, сортировка …), есть хорошая кросс-платформенная обходная проблема для проблемы, изложенной в этом вопросе SO : URLEncode() имена файлов.

 Hörensägen.txt 

превращается в

 H%c3%b6rens%c3%a4gen.txt 

который должен быть безопасным для использования в любой файловой системе и способен отображать любой символ UTF-8.

Я считаю, что гораздо предпочтительнее пытаться «изначально» работать с возможностями ОС хоста, что гарантированно будет сложным и подверженным ошибкам (в дополнение к различиям в операционной системе, я уверен, что различные форматы файловой системы – FAT16, FAT32, NTFS , extFS версии 1/2/3 …. принести свой собственный набор правил, чтобы быть в курсе.)

Не ответ, но … WinXP основан на UTF-8 (согласно книге Джеффри Рихтера «CLR через C #»), и все функции ASCII WinAPI – это просто обертки для подобных UTF-8.