Codé sur un octet et jeux de caractères multioctets
Le jeu de caractères ASCII définit les caractères de la plage 0x00 - 0x7F.Il existe plusieurs autres jeux de caractères, par Européen, qui définissent les caractères de la plage 0x00 - 0x7F de la même façon que le jeu de caractères ASCII et définissez également un jeu de caractères étendu de 0x80 - 0xFF.Si bien qu'un de 8 bits, jeu de caractères codés sur un octet (SBCS) est suffisant pour représenter le jeu de caractères ASCII ainsi que les jeux de caractères pour de nombreuses langues européennes.Toutefois, certains jeux de caractères pour des langues non européennes, tels que le kanji japonais, comprennent beaucoup plus de caractères que peut être représentés par un code codé sur un octet, et requièrent donc l'encodage de jeu de caractères multioctets (MBCS).
[!REMARQUE]
Plusieurs routines d' SBCS en octets, des caractères, et les chaînes multioctets de handle de la bibliothèque Runtime Microsoft selon le cas.De nombreux jeux de caractères multioctets définissent le jeu de caractères ASCII comme sous-ensemble.Dans de nombreux jeux de caractères multioctets, chaque caractère de la plage 0x00 – 0x7F est identique au caractère qui a la même valeur dans le jeu de caractères ASCII.Par exemple, dans ASCII et les chaînes de caractères d' MBCS , le caractère d' NULL d'un octet (" \ 0 ") a la valeur 0x00 et indique le caractère NULL de fin.
Un jeu de caractères multioctets peut se composer de l'un octet et des caractères à deux octets.Donc une chaîne de caractères multioctets peut contenir un mélange de codé sur un octet et les caractères codés sur deux octets.Un caractère multioctets à deux octets a un octet de tête et un octet de queue.Dans un jeu de caractères multioctets, les octets de tête font partie d'une plage spécifique, ainsi que les octets de queue.Lorsque ces plages se chevauchent, il peut être nécessaire d'évaluer le contexte particulier pour déterminer si un octet donné fonctionne comme un octet de tête ou octet de queue.