soporte para Unicode
El estándar Unicode es un código de caracteres estandarizado diseñado para codificar textos internacionales para su visualización y almacenamiento. Utiliza un valor exclusivo de 16 o 32–bit para representar cada carácter individual, independientemente de la plataforma, el idioma o el programa. Utilizando Unicode, puede desarrollar un producto de software que funcionará con diversas plataformas, idiomas y países o regiones. Unicode también permite que los datos sean transportados a través de muchos sistemas diferentes.
Hay dos formas diferentes de soporte Unicode disponibles desde el compilador y el tiempo de ejecución. En esta sección se describen las dos formas de soporte Unicode, así como algunas de las características y consideraciones para utilizar dicho soporte. Para obtener información adicional sobre Unicode, visite la Página de inicio de Unicode en www.unicode.org.
El primer tipo de soporte Unicode es soporteUCS-2. Cuando se especifica la opción LOCALETYPE (*LOCALEUCS2) en el mandato de compilación, el compilador y el tiempo de ejecución utilizan caracteres anchos (es decir, caracteres del tipo wchar_t) y series de caracteres anchos (es decir, series del tipo wchar_t *) que representan caracteres Unicode de 2 bytes. Los caracteres estrechos (no anchos) y las series de caracteres estrechos representan caracteres EBCDIC, del mismo modo que lo hacen cuando el soporte UCS-2 no está habilitado. Los caracteres Unicode representan puntos de código en CCSID 13488.
El segundo tipo de soporte Unicode es el soporte UTF-8 o UTF-32 (también conocido como soporte UTF). Cuando se especifica la opción LOCALETYPE (*LOCALEUTF) en el mandato de compilación, el compilador y el tiempo de ejecución utilizan caracteres anchos y series de caracteres anchos que representan caracteres Unicode de 4 bytes. Cada carácter de 4 bytes representa un único carácter UTF-32 . Los caracteres estrechos y las series de caracteres estrechos representan caracteres UTF-8 . Cada carácter UTF-8 tiene un tamaño de 1 a 4 bytes. La mayoría de los caracteres normales tienen un tamaño de un solo byte y, de hecho, todos los caracteres ASCII de 7 bits se correlacionan directamente con UTF-8 y tienen un tamaño de 1 byte. Los caracteres UTF-8 representan puntos de código en CCSID 1208.
#include <stdio.h>
int main() {
printf("Hello World\n");
return 0;
}Cuando este programa se compila con soporte UTF, la serie de caracteres se almacena en el programa como caracteres UTF-8 y no caracteres EBCDIC. La función printf() lo sabe y puede analizar los caracteres UTF-8 y generar la salida como se esperaba. Sin embargo, si este programa ha llamado a alguna otra función proporcionada por el usuario que no sabía cómo manejar los caracteres UTF-8 , la otra función podría producir resultados o comportamientos incorrectos.