Partager via


Jeux de caractères sur deux octets

Un jeu de caractères à deux octets (DBCS), également appelé « jeu de caractères 8 bits développé », est un jeu de caractères étendu un jeu de caractères à octet unique (SBCS), implémenté en tant que page de codes. Les DBCS ont été initialement développés pour étendre la conception SBCS pour gérer des langues telles que le japonais et le chinois. Certains caractères d’un DBCS, y compris les chiffres et les lettres utilisés pour l’écriture en anglais, ont des valeurs de code à octet unique. D’autres caractères, tels que les idéogrammes chinois ou le kanji japonais, ont des valeurs de code double octet. Un DBCS peut correspondre à une page de codes Windows ou à une page de codes OEM. Une page de codes DBCS peut également inclure une page de codes non native, par exemple une page de codes EBCDIC. Pour connaître les définitions de ces pages de codes, consultez pages de codes.

Note

Les nouvelles applications Windows doivent utiliser Unicode pour éviter les incohérences des pages de code variées et pour faciliter la localisation. Toutefois, certains protocoles hérités peuvent nécessiter l’utilisation de pages de code DBCS. Chaque page de codes DBCS prend en charge différents caractères, mais aucune page ne prend en charge l’étendue complète des caractères fournis par Unicode. Chaque page de codes DBCS prend en charge un sous-ensemble différent, encodé différemment. Les données converties d’une page de codes DBCS vers une autre sont susceptibles d’être endommagées, car la même valeur de données sur différentes pages de codes peut encoder un caractère différent. Les données converties d’Unicode en DBCS sont soumises à une perte de données, car une page de codes donnée peut ne pas être en mesure de représenter chaque caractère utilisé dans ces données Unicode particulières.

 

Pour interpréter une chaîne DBCS, une application doit commencer au début de la chaîne et effectuer une analyse vers l’avant. Il effectue le suivi lorsqu’il rencontre un octet de prospect dans la chaîne et traite l’octet suivant comme la partie de fin du même caractère. Si l’application analyse simplement la chaîne d’un octet à la fois et rencontre un octet qui semble être la valeur de code représentant une barre oblique inverse (« \ »), cet octet peut simplement être l’octet de fin d’un caractère à deux octets. L’application ne peut pas simplement sauvegarder un octet pour voir si l’octet précédent est un octet de prospect, car cette valeur d’octet peut être utilisée à la fois comme octet de prospect et un octet de fin. Par conséquent, l’application présente essentiellement le même problème qu’avec la barre oblique inverse possible. En d’autres termes, les recherches de sous-chaînes sont beaucoup plus compliquées avec un DBCS qu’avec des SBCS ou Unicode. En conséquence, les applications qui prennent en charge un DBCS doivent utiliser des fonctions spéciales, telles que _mbsstr, au lieu de la fonction StrStr.

Vos applications utilisent des pages de codes Windows DBCS avec les versions « A » des fonctions Windows. Consultez Conventions pour les prototypes de fonction et pages de code. Pour identifier une page de codes DBCS, une application peut utiliser la fonction GetCPInfo ou GetCPInfoEx. Une application peut utiliser la fonction IsDBCSLeadByte pour déterminer si une valeur donnée peut être utilisée comme octet principal d’un caractère de 2 octets. En outre, une application peut utiliser les fonctions MultiByteToWideChar et WideCharToMultiByte à mapper entre des chaînes Unicode et DBCS.

jeux de caractères

jeux de caractères à octet unique