Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Преобразуйте символ 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