Architecture des pages de codes
Les classements contrôlent le stockage physique des chaînes de caractères dans SQL Server. Le classement spécifie les modèles binaires représentant chaque caractère ainsi que les règles de tri et de comparaison des caractères.
Dans un ordinateur, les caractères sont représentés par différents modèles de bits qui sont soit activés (ON), soit désactivés (OFF). Chaque octet est composé de 8 bits pouvant être individuellement activés ou désactivés selon 256 modèles différents. Un programme qui utilise 1 octet pour stocker chaque caractère peut donc représenter jusqu'à 256 caractères différents en assignant un caractère particulier à chaque modèle de bits. Deux octets comportent 16 bits pouvant être individuellement activés ou désactivés selon 65 536 modèles différents. Un programme qui utilise 2 octets pour stocker chaque caractère peut donc représenter jusqu'à 65 536 caractères.
Les pages de code mono-octet correspondent à des définitions de caractères mappés sur chacun des 256 modèles de bits possibles d'un octet. Les pages de code définissent les modèles de bits des caractères majuscules et minuscules, des chiffres, des symboles et des caractères spéciaux tels que le point d'exclamation (!), l'arobase (@), le signe dièse (#) ou le pourcentage (%). Chaque langue européenne, comme l'allemand ou l'espagnol, possède sa propre page de codes mono-octet. Bien que les modèles de bits utilisés pour représenter les caractères A à Z de l'alphabet latin soient identiques pour toutes les pages de codes, les modèles de bits utilisés pour représenter les caractères accentués varient d'une page de codes à l'autre.
Les jeux de caractères mono-octet ne peuvent pas stocker l'ensemble des caractères utilisés par plusieurs langues. Certaines langues asiatiques possèdent des milliers de caractères, qui doivent être codés sur deux octets. Des jeux de caractères codés sur deux octets, ainsi que des pages de codes, ont été définis pour ces langues.
Le tableau suivant montre les pages de codes prises en charge par SQL Server.
Page de codes |
Description |
---|---|
1258 |
Vietnamien |
1257 |
Balte |
1256 |
Arabe |
1255 |
Hébreu |
1254 |
Turc |
1253 |
Grec |
1252 |
Latin1 (ANSI) |
1251 |
Cyrillique |
1250 |
Europe centrale |
950 |
Chinois (Traditionnel) |
949 |
Coréen |
936 |
Chinois (Simplifié) |
932 |
Japonais |
874 |
Thaï |
850 |
Multilingue (MS-DOS Latin1) |
437 |
Anglais (É-U) MS-DOS |
Plusieurs classements peuvent utiliser la même page de codes pour les données non Unicode. Par exemple, la page de codes 1251 définit un jeu de caractères cyrilliques. Cette page de codes est utilisée par plusieurs classements, tels que Cyrillic_General, Ukrainian et Macedonian_FYROM_90. Bien que tous ces classements utilisent le même ensemble de bits pour représenter les données de caractères non-Unicode, les règles de tri et de comparaison qu'ils appliquent sont légèrement différentes. Cela permet une adaptation aux définitions du dictionnaire en matière de séquence correcte des caractères dans la langue ou l'alphabet associé au classement.