Juegos de caracteres usados en nombres de archivo

NTFS almacena nombres de archivo en Unicode. En cambio, los sistemas de archivos FAT12, FAT16 y FAT32 antiguos usan el juego de caracteres OEM. Para obtener más información, vea Páginas de códigos.

Las aplicaciones que no son Unicode que crean archivos FAT a veces tienen que usar las funciones de conversión estándar de la biblioteca en tiempo de ejecución de C para traducir entre el juego de caracteres de página de códigos de Windows y el juego de caracteres de página de códigos OEM. Con las implementaciones Unicode de las funciones del sistema de archivos, no es necesario realizar dichas traducciones.

La aplicación puede usar tipos de cadena genéricos, como se describe en Tipos de datos de Windows para cadenas. La aplicación también puede usar prototipos de función genéricos mediante técnicas descritas en Convenciones para prototipos de función. Para los tipos de cadena genéricos o prototipos de función genérica, la aplicación puede usar un único archivo de origen para compilar una versión Unicode o una versión que no sea Unicode. Para permitir esto, la aplicación proporciona macros para funciones que no se invocan al compilar para Unicode.

En los sistemas de archivos NTFS y FAT, los caracteres de nombre de archivo especiales son: '\', '/', '.', '?' y '*'. En las páginas de códigos oem, estos caracteres especiales se encuentran en el intervalo de caracteres ASCII (0x00 a través de 0x7F). Sus equivalentes Unicode son los mismos valores en un formato de 2 bytes, 0x0000 a través de 0x007F.

Precaución

Las páginas de códigos de Windows y los juegos de caracteres de página de códigos OEM usados en los sistemas operativos en japonés contienen el símbolo Yen (}) en lugar de una barra diagonal inversa (\). Por lo tanto, el símbolo Yen es un carácter prohibido para los sistemas de archivos NTFS y FAT. Al asignar Unicode a una página de códigos de idioma japonés, WideCharToMultiByte y otras funciones de conversión asignan la barra diagonal inversa (U+005C) y el símbolo Unicode Yen normal (U+00A5) a este mismo carácter. Por motivos de seguridad, las aplicaciones no suelen permitir el carácter U+00A5 en una cadena Unicode que se pueda convertir para su uso como nombre de archivo FAT. Para obtener más información, vea Consideraciones de seguridad: Características internacionales.

 

Unicode en la API de Windows

Consideraciones de seguridad: Características internacionales