Поделиться через


c16rtomb, c32rtomb

Преобразуйте символ UTF-16 или UTF-32 wide в многобайтовый символ UTF-8.

Синтаксис

size_t c16rtomb(
    char *mbchar,
    char16_t wchar,
    mbstate_t *state
);
size_t c32rtomb(
    char *mbchar,
    char32_t wchar,
    mbstate_t *state
);

Параметры

mbchar
Указатель на массив для хранения преобразованного многобайтового символа UTF-8.

wchar
Расширенный символ для преобразования.

state
Указатель на объект mbstate_t.

Возвращаемое значение

Число байтов, сохраняемых в объекте массива mbchar, включая все последовательности сдвигов. Если wchar недопустимый широкий символ, errno возвращается значение (size_t)(-1), задается EILSEQзначение , а значение state не указано.

Замечания

Функция c16rtomb преобразует символ wchar LE UTF-16 в эквивалентную последовательность многобайтовых символов UTF-8. Если mbchar не является указателем NULL, функция сохраняет преобразованную последовательность в объекте массива, на который указывает mbchar. До MB_CUR_MAX байтов сохраняется в mbchar, а state устанавливается в итоговое состояние многобайтового сдвига.

Если wchar символ имеет значение NULL, последовательность, необходимая для восстановления начального состояния смены, сохраняется при необходимости, а затем — значение NULL. state задано начальное состояние преобразования. Функция c32rtomb идентична, но преобразует символ в формате UTF-32.

Если mbchar является пустым указателем, поведение аналогично вызову функции, которая заменяет внутренний буфер на mbchar , а расширенный пустой символ — на wchar.

Объект состояния преобразования state позволяет выполнять последующие вызовы этой функции и других перезапускаемых функций, которые сохраняют состояние сдвига многобайтовых выходных символов. Результаты не определены при использовании перезагрузимых и неизменяемых функций.

Чтобы преобразовать символы UTF-16 в многобайтовые символы, отличные от UTF-8, используйте wcstombsфункции , _wcstombs_lwcstombs_s или _wcstombs_s_l.

Требования

Маршрут Обязательный заголовок
c16rtomb, c32rtomb C, C++: <uchar.h>

Дополнительные сведения о совместимости см. в разделе Совместимость.

См. также

Преобразование данных
Локаль
Интерпретация последовательностей многобайтовых символов
mbrtoc16, mbrtoc32
wcrtomb
wcrtomb_s