Arquitectura de página de códigos
Las intercalaciones controlan el almacenamiento físico de las cadenas de caracteres en SQL Server. Una intercalación especifica las combinaciones de bits que representan cada carácter y las reglas por las que los caracteres se ordenan y comparan.
En un equipo, los caracteres se representan mediante distintas combinaciones de bits con valores ON u OFF. En un byte hay 8 bits y los 8 bits pueden estar ON y OFF en 256 combinaciones distintas. Un programa que utiliza 1 byte para almacenar cada carácter puede representar hasta 256 caracteres distintos asignando un carácter a cada combinación de bits. En dos bytes hay 16 bits y los 16 bits pueden estar ON y OFF en 65.536 combinaciones exclusivas. Un programa que utiliza dos bytes para representar cada carácter puede representar hasta 65.536 caracteres.
Las páginas de códigos de un byte son definiciones de los caracteres asignados a cada una de las 256 combinaciones de bits posibles en un byte. En las páginas de códigos se definen las combinaciones de bits para las letras mayúsculas y las minúsculas, las cifras, los símbolos y los caracteres especiales, como los signos de exclamación de cierre (!), de arroba (@), de número ( #) o de porcentaje (%). Cada idioma europeo, como el alemán o el español, tiene su propia página de códigos de un byte. Aunque para representar los caracteres del alfabeto latino de la A a la Z se utilizan las mismas combinaciones de bits en todas las páginas de códigos, las combinaciones de bits que se utilizan para representar los caracteres con acento varían de una página de códigos a otra.
Los juegos de caracteres de un byte no pueden almacenar todos los caracteres que muchos idiomas utilizan. Algunos idiomas asiáticos tienen miles de caracteres, por lo que deben utilizar dos bytes por carácter. Se han definido juegos de caracteres de doble byte para estos idiomas, así como páginas de códigos.
En la siguiente tabla se muestran las páginas de códigos que admite SQL Server.
Página de códigos |
Descripción |
---|---|
1258 |
Vietnamita |
1257 |
Báltico |
1256 |
Árabe |
1255 |
Hebreo |
1254 |
Turco |
1253 |
Griego |
1252 |
Latin1 (ANSI) |
1251 |
Cirílico |
1250 |
Centroeuropeo |
950 |
Chino (tradicional) |
949 |
Coreano |
936 |
Chino (simplificado) |
932 |
Japonés |
874 |
Tailandés |
850 |
Multilingüe (MS-DOS Latin1) |
437 |
MS-DOS Inglés (EE.UU.) |
Varias intercalaciones pueden utilizar la misma página de códigos en datos no Unicode. Por ejemplo, la página de códigos 1251 define un juego de caracteres Cirílico. Varias intercalaciones utilizan esta página de códigos, como Cyrillic_General, Ukrainian y Macedonian_FYROM_90. Aunque todas estas intercalaciones utilizan el mismo conjunto de bits para representar datos de caracteres no Unicode, las reglas de ordenación y comparación que aplican son ligeramente distintas. Esto se hace para que puedan controlar las definiciones de diccionario de la secuencia correcta de caracteres en el idioma o el alfabeto asociado a la intercalación.