Однобайтовые и многобайтовые кодировки

Кодировка ASCII определяет символы в диапазоне от 0x00 до 0x7F. Существует множество других наборов символов, в первую очередь европейских, которые определяют символы в диапазоне 0x00 — 0x7F идентичны набору символов ASCII, а также определяют расширенный набор символов из 0x80 — 0xFF. 8-разрядный однобайтовый набор (SBCS) достаточно для представления набора символов ASCII и наборов символов для многих европейских языков. Однако некоторые неевропейские наборы символов, такие как японский Канджи, включают в себя гораздо больше символов, чем могут быть представлены в схеме программирования с одним байтом, поэтому требуется кодировка многобайтового набора символов (MBCS).

Примечание.

Многие подпрограммы библиотеки времени выполнения Майкрософт SBCS обрабатывают многобайтовые байты, символы и строки соответствующим образом. Многие многобайтовые кодировки определяют кодировку ASCII как свое подмножество. Во многих многобайтовых кодировках каждый символ в диапазоне от 0x00 до 0x7F совпадает с символом в кодировке ASCII, который имеет то же значение. Например, и в строках ASCII, и в строках многобайтовой кодировки однобайтовый нуль-символ ('\0') имеет значение 0x00 и означает завершающий нуль-символ.

Многобайтовый набор символов может состоять как из 1-байтов, так и 2-байтовых символов. Многобайтовая строка может содержать смесь однобайтовых и двойных байтовых символов. Двухбайтовый многобайтовый символ имеет старший байт и младший байт. В отдельных многобайтовых кодировках старшие и младшие байты попадают в определенный диапазон. Если эти диапазоны перекрываются, может потребоваться оценить контекст, чтобы определить, работает ли данный байт в качестве байта свинца или байта следа.

См. также

Интернационализация
Универсальные подпрограммы среды выполнения C по категориям