Многобайтовая кодировка и расширенные символы
Многобайтовые символы — это символы, составленные последовательностями из одного или нескольких байтов. Каждая последовательность байтов представляет отдельный символ в расширенном наборе символов. Многобайтовые символы используются в таких кодировках, как Кандзи.
Расширенные символы — это коды многоязычных символов, которые всегда имеют размер 16 бит. Символьные константы имеют тип char
; для расширенных символов используется тип wchar_t
. Поскольку расширенные символы всегда имеют фиксированный размер, их использование упрощает программирование с использованием международных кодировок.
Строковый литерал с расширенными символами L"hello"
становится массивом из шести целочисленных значений типа wchar_t
.
{L'h', L'e', L'l', L'l', L'o', 0}
Расширенные символы определены в спецификации Юникода. Преобразование между многобайтовыми и расширенными символами выполняется процедурами библиотеки времени выполнения mbstowcs
, mbtowc
, wcstombs
и wctomb
.