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

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

Примечание

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

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

См. также

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