Función SetFileApisToANSI (fileapi.h)
Hace que las funciones de E/S de archivo usen la página de códigos del juego de caracteres ANSI para el proceso actual. Esta función es útil para las operaciones de entrada y salida de la consola de 8 bits.
Sintaxis
void SetFileApisToANSI();
Valor devuelto
Ninguno
Observaciones
Las funciones de E/S de archivo cuya página de códigos establece SetFileApisToANSI son esas funciones exportadas por KERNEL32.DLL que aceptan o devuelven un nombre de archivo. SetFileApisToANSI establece la página de códigos por proceso, en lugar de por subproceso o por equipo.
La función SetFileApisToANSI complementa la función SetFileApisToOEM , que hace que el mismo conjunto de funciones de E/S de archivo use la página de códigos del juego de caracteres OEM.
Las funciones de consola de 8 bits usan la página de códigos OEM de forma predeterminada. Todas las demás funciones usan la página de códigos ANSI de forma predeterminada. Esto significa que otras funciones pueden no procesar correctamente las cadenas devueltas por las funciones de consola y viceversa. Por ejemplo, si la función FindFirstFileA devuelve una cadena que contiene determinados caracteres ANSI extendidos y las funciones de consola de 8 bits se establecen para usar la página de códigos OEM, la función WriteConsoleA no muestra correctamente la cadena.
Use la función AreFileApisANSI para determinar qué página de códigos está usando actualmente el conjunto de funciones de E/S de archivos. Use las funciones SetConsoleCP y SetConsoleOutputCP para establecer la página de códigos de las funciones de consola de 8 bits.
Para resolver el problema de la incompatibilidad de la página de códigos, es mejor usar Unicode para aplicaciones de consola. Las aplicaciones de consola que usan Unicode son mucho más versátiles que las que usan funciones de consola de 8 bits. Al prohibir esa solución, una aplicación de consola puede llamar a la función SetFileApisToOEM para hacer que el conjunto de funciones de E/S de archivo use cadenas de juego de caracteres OEM en lugar de cadenas de juego de caracteres ANSI. Use la función SetFileApisToANSI para volver a establecer esas funciones en la página de códigos ANSI.
Cuando se trabaja con líneas de comandos, una aplicación de consola debe obtener la línea de comandos en un formulario Unicode y, a continuación, convertirlo en formulario OEM mediante las funciones de carácter a OEM pertinentes. Tenga en cuenta también que la matriz del parámetro argv de la función principal de la línea de comandos contiene cadenas de juego de caracteres ANSI en este caso.
En Windows 8 y Windows Server 2012, esta función es compatible con las tecnologías siguientes.
Tecnología | Compatible |
---|---|
Protocolo Bloque de mensajes del servidor (SMB) 3.0 | Sí |
Conmutación por error transparente (TFO) de SMB 3.0 | Sí |
SMB 3.0 con recursos compartidos de archivos de escalabilidad horizontal (SO) | Sí |
Sistema de archivos de Volumen compartido de clúster (CsvFS) | Sí |
Sistema de archivos resistente a errores (ReFS) | Sí |
Requisitos
Cliente mínimo compatible | Windows XP [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2003 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | fileapi.h (incluya Windows.h, WinBase.h) |
Library | Kernel32.lib |
Archivo DLL | Kernel32.dll |