Utilisation de données Unicode

La spécification Unicode définit un schéma d'encodage unique pour la plupart des caractères largement utilisés dans les transactions commerciales à travers le monde. Tous les ordinateurs traduisent de manière fiable les modèles de bits des données Unicode en caractères en utilisant la spécification Unicode unique. Cela assure que le même modèle de bits est toujours converti par le même caractère sur tous les ordinateurs. Les données peuvent être transférées librement d'une base de données ou d'un ordinateur à un autre sans redouter que le système qui reçoit ne traduise pas correctement les modèles de bits en caractères.

Un problème avec les types de données qui utilisent un octet pour coder chaque caractère est que le type de données ne peut représenter que 256 caractères différents. Cela impose plusieurs spécifications de codage, ou pages de codes, pour différents alphabets tels que les alphabets européens, qui sont relativement petits. Il est également impossible de gérer des systèmes tels que les alphabets japonais (Kanji) ou coréen (Hangul) qui comprennent des milliers de caractères.

Chaque classement Microsoft SQL Server 2005 dispose d'une page de codes qui définit les modèles de bits représentant chaque caractère des valeurs char, varchar et text. Vous pouvez attribuer différentes pages de code aux colonnes et constantes de caractère. Les ordinateurs clients utilisent la page de codes associée aux paramètres régionaux du système d'exploitation pour interpréter les modèles de bits de caractères. Il existe de nombreuses pages de codes différentes et certains caractères apparaissent sur certaines d'entre elles, mais pas sur d'autres. D'autres sont définis avec différents modèles de bit selon les pages de codes. Lors de la création de systèmes internationaux qui doivent gérer différentes langues, il devient difficile de trouver des pages de codes pour tous les ordinateurs qui répondent aux critères de langue de plusieurs pays. Il est également difficile de s'assurer que chaque ordinateur réalise les traductions correctes lorsqu'il est en interface avec un système utilisant une page de codes différente.

La spécification Unicode résout ce problème en utilisant 2 octets pour coder chaque caractère. Il existe assez de modèles différents (65 536) sur 2 octets pour qu'une spécification unique couvre les langues les plus couramment utilisées dans les entreprises. Tous les systèmes Unicode utilisant de manière efficace les même modèles de bits pour représenter tous les caractères, il n'existe aucun problème de conversion incorrecte de caractères lors du transfert d'un ordinateur à un autre. Vous pouvez éviter la majeure partie des problèmes de conversion de caractères en utilisant des types de données Unicode dans l'ensemble de votre système.

Dans SQL Server, les types de données suivants acceptent les données Unicode :

  • nchar
  • nvarchar
  • ntext
    ms191200.note(fr-fr,SQL.90).gifRemarque :
    Le préfixe n de ces types de données provient de la norme SQL-92 pour les types de données National (Unicode).

L'utilisation des types nchar, nvarchar et ntext est identique à celle des types char, varchar et text respectivement, avec les exceptions suivantes :

  • Unicode accepte une gamme plus étendue de caractères ;
  • le stockage des caractères Unicode requiert davantage d'espace ;
  • la taille maximale des colonnes nchar est de 4 000 caractères et non 8 000 comme pour les types char et varchar ;
  • la taille maximale des colonnes nvarchar, en utilisant le spécificateur max, est 2^31-1 octets. Pour plus d'informations sur nvarchar(max), consultez Utilisation de types de données de valeur élevée.
  • les constantes Unicode sont spécifiés avec N comme première lettre : N'chaîne Unicode' ;
  • toutes les données Unicode utilisent le jeu de caractères défini par la norme Unicode. Les classements Unicode utilisés pour les colonnes Unicode sont basés sur des attributs tels que le respect de la casse, le respect des accents, le respect du jeu de caractères Kana, le respect de la largeur et les binaires.

Voir aussi

Autres ressources

Types de données (Transact-SQL)
NCHAR (Transact-SQL)
UNICODE (Transact-SQL)

Aide et Informations

Assistance sur SQL Server 2005