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_l
wcstombs_s или _wcstombs_s_l.
Требования
Маршрут | Обязательный заголовок |
---|---|
c16rtomb , c32rtomb |
C, C++: <uchar.h> |
Дополнительные сведения о совместимости см. в разделе Совместимость.
См. также
Преобразование данных
Локаль
Интерпретация последовательностей многобайтовых символов
mbrtoc16
, mbrtoc32
wcrtomb
wcrtomb_s