¿Cuál es la diferencia entre "unicode" y "ansi"?
ANSI y ASCII
nInicialmente, solo había un conjunto de caracteres en Internet: el Código estándar estadounidense para el intercambio de información (denominado "Código estándar estadounidense para el intercambio de información") - ASCII, usando 7 bits Representa un carácter, un total de * * * representa 128 caracteres. Más tarde, IBM se expandió sobre esta base y utilizó 8 bits para representar un carácter. ¿Un total de * * * puede representar 256 caracteres, aprovechando al máximo la cantidad máxima de información que se puede expresar en un byte?
Conjunto de caracteres del Sur: conjunto de caracteres ASCII y conjuntos de caracteres compatibles derivados del mismo, como GB2312. El nombre oficial es MBCS (Sistema de cartuchos multibyte), que comúnmente se conoce como juego de caracteres ANSI.
1. Parte de definición:
ANSI:char str[1024]; funciones de procesamiento de cadenas disponibles:
strcpy(),? Strcat(), strlen(),etc.
UNICODE:wchar_t str[1024]; Funciones de procesamiento de cadenas disponibles
Dos. Funciones disponibles:
ANSI: char, se puede utilizar como funciones de procesamiento de cadenas:
strcat(?), strcpy(?), ?strlen(?), etc. comenzando con str función.
UNICODE: Es decir, wchar_t puede manejar funciones con cadenas: wcscat(), wcscpy(), wcslen() y otras funciones que comienzan con wcs.
Tres. Soporte del sistema
¿Windows? 98 ?: Sólo se admite ANSI.
¿Windows? ¿2k? :Soporta ANSI y UNICODE.
¿Windows CE? :Solo es compatible con UNICODE.
Explicación
1 Solo admite UNICODE en COM.
2. Todo el sistema operativo de Windows 2000 está basado en UNICODE, por lo que hay que pagar un precio por utilizar ANSI en Windows 2000. Aunque no hay conversión en la codificación, esta conversión está oculta y consume recursos del sistema (CPU, memoria).
UNICODE debe usarse en Windows 98 y es necesario cambiar la codificación manualmente.
4. Cómo distinguir:
En nuestro desarrollo de software, a menudo necesitamos admitir tanto ANSI como UNICODE. Cuando se requiere la conversión de clases, es imposible cambiar el tipo y los caracteres. de la cadena. Funciones aritméticas utilizadas en cadenas. Para ello, la biblioteca de tiempo de ejecución de C de calibración y Windows proporcionan una forma de definir macros.
La macro _UNICODE se proporciona en C (subrayada) y la macro UNICODE se proporciona en Windows (subrayada). Siempre que la macro _UNICODE y la macro UNICODE estén configuradas, el sistema cambiará automáticamente a la versión UNICODE; de lo contrario, el sistema compilará y ejecutará en modo ANSI.
La simple definición de una macro no puede lograr la conversión automática y se necesita una serie de definiciones de caracteres para respaldarla.