Conjuntos de caracteres de byte único e multibyte

O conjunto de caracteres ASCII define caracteres no intervalo 0x00 – 0x7F. Existem muitos outros conjuntos de caracteres, principalmente europeus, que definem os caracteres dentro do intervalo 0x00 - 0x7F de forma idêntica ao conjunto de caracteres ASCII e também definem um conjunto de caracteres estendido de 0x80 - 0xFF. Um conjunto de caracteres de byte único (SBCS) de 8 bits é suficiente para representar o conjunto de caracteres ASCII e os conjuntos de caracteres para muitos idiomas europeus. No entanto, alguns conjuntos de caracteres não europeus, como japonês Kanji, incluem muitos caracteres além dos que podem ser representados em um esquema de codificação de um byte e, portanto, exigem a codificação de um MBCS (conjunto de caracteres multibyte).

Observação

Muitas rotinas SBCS da biblioteca de tempo de execução da Microsoft manipulam bytes, caracteres e cadeias de caracteres de vários bytes, conforme apropriado. Muitos conjuntos de caracteres multibyte definem o conjunto de caracteres ASCII como um subconjunto. Em muitos conjuntos de caracteres multibyte, cada caractere no intervalo 0x00 – 0x7F é idêntico ao caractere que tem o mesmo valor no conjunto de caracteres ASCII. Por exemplo, nas cadeias de caracteres ASCII e MBCS, o caractere de um byte nulo ('\0') tem valor 0x00 e indica o caractere nulo de terminação.

Um conjunto de caracteres multibyte pode consistir em caracteres de 1 e 2 bytes. Uma cadeia de caracteres multibyte pode conter uma mistura de caracteres de byte único e duplo. Um caractere multibyte de dois bytes tem um byte inicial e um byte final. Em um conjunto de caracteres multibyte, os bytes iniciais ficam dentro de um determinado intervalo, assim como os bytes finais. Quando esses intervalos se sobrepõem, você pode precisar avaliar o contexto para determinar se um byte está funcionando como byte inicial ou byte final.

Confira também

Internacionalização
Rotinas de runtime C universais por categoria