Насколько я понимаю - NTFS поддерживает имена файлов Unicode (UTF-16, как утверждает Micorsoft?).
Однако официальная документация MSDN очень смутно в отношении того, какая кодовая страница используется для хранения имен файлов (пути к файлам) на FAT-32.
Здесь говорится, что OEM-страница кода (CP437, которую я предполагаю) используется для хранения имен файлов: http://msdn.microsoft.com/en-us/library/windows/desktop/dd317748.aspx
Но здесь выясняется, что между CP437 могут быть разные кодовые страницы OEM: http://msdn.microsoft.com/en-us/library/windows/desktop/dd317752.aspx
И все мы теперь, что утилиты, такие как mount, поддерживают гораздо больше разных кодовых страниц для FAT, больше, чем только установленные кодовые страницы OEM.
Итак, какова фактическая cdepage для имен файлов FAT-32? Это зависит от кодовой страницы системы в то время, когда был создан объем FAT? Может ли FAT поддерживать настоящие двубайтовые кодировки символов, такие как UTF-16? Или многобайтовые кодировки символов, такие как UTF-8, являются лимитом?
И более конкретный вопрос: Что происходит, когда я использую функцию CreateFileW (которая, как утверждает MSDN, использует UTF-16 в качестве кодовой страницы имени файла), чтобы создать файл на томе FAT-32?