Наборы символов, используемые в именах файлов
NTFS сохраняет имена файлов в Юникоде. В отличие от этого, старые файловые системы FAT12, FAT16 и FAT32 используют набор символов OEM. Дополнительные сведения см. в кодовой страницы.
Приложения, которые создают ФАЙЛЫ FAT, иногда должны использовать стандартные функции преобразования библиотеки среды выполнения C для перевода между набором символов кодовой страницы Windows и набором символов кодовой страницы OEM. При реализации функций файловой системы Юникод не требуется выполнять такие переводы.
Приложение может использовать универсальные типы строк, как описано в разделе Типы данных Windows для строк. Приложение также может использовать прототипы универсальных функций с помощью методов, описанных в соглашениях о прототипах функций. Для универсальных типов строк или прототипов универсальных функций приложение может использовать один исходный файл для компиляции Юникода или версии, отличной от Юникода. Чтобы разрешить это, приложение предоставляет макросы для функций, которые не вызываются при компиляции для Юникода.
В файловых системах NTFS и FAT специальные символы имени файла: "\", "/", ".", "?" и "*". На кодовых страницах OEM эти специальные символы находятся в диапазоне символов ASCII (0x00 через 0x7F). Их эквиваленты Юникода являются одинаковыми значениями в 2-байтовой форме, 0x0000 через 0x007F.
Осторожность
Кодовая страница Windows и наборы символов кодовой страницы OEM, используемые в операционных системах на японском языке, содержат символ йена (jp) вместо обратной косой черты (\). Таким образом, символ йена является запрещенным символом для файловых систем NTFS и FAT. При сопоставлении Юникода с кодовой страницей японского языка WideCharToMultiByte и другими функциями преобразования сопоставляют обратную косую черту (U+005C) и обычный символ Юникода (U+00A5) с этим же символом. По соображениям безопасности приложения обычно не должны разрешать символ U+00A5 в строке Юникода, которая может быть преобразована для использования в качестве имени FAT-файла. Дополнительные сведения см. в разделе Вопросы безопасности: международные функции.
Связанные разделы
-
Юникод в API Windows
-
вопросы безопасности : международные функции