c16rtomb
, c32rtomb
Converta um caractere largo UTF-16 ou UTF-32 em um caractere multibyte UTF-8.
Sintaxe
size_t c16rtomb(
char *mbchar,
char16_t wchar,
mbstate_t *state
);
size_t c32rtomb(
char *mbchar,
char32_t wchar,
mbstate_t *state
);
Parâmetros
mbchar
Ponteiro para uma matriz para armazenar o caractere multibyte UTF-8 convertido.
wchar
Um caractere largo a ser convertido.
state
Um ponteiro para um objeto mbstate_t
.
Valor retornado
O número de bytes armazenados no objeto de matriz mbchar
, incluindo quaisquer sequências de deslocamento. Se wchar
não for um caractere largo válido, o valor (size_t
)(-1) será retornado, errno
será definido como EILSEQ
e o valor de state
não será especificado.
Comentários
A c16rtomb
função converte o caractere wchar
LE UTF-16 na sequência de caracteres estreitos multibyte UTF-8 equivalente. Se mbchar
não for um ponteiro nulo, a função armazenará a sequência convertida no objeto de matriz apontado por mbchar
. Até MB_CUR_MAX
bytes são armazenados em mbchar
e state
é definido como o estado de deslocamento multibyte resultante.
Se wchar
for um caractere largo nulo, uma sequência necessária para restaurar o estado de deslocamento inicial será armazenada, se necessário, seguida pelo caractere nulo. state
é definido como o estado de conversão inicial. A função c32rtomb
é idêntica, mas converte um caractere UTF-32.
Se mbchar
for um ponteiro nulo, o comportamento será equivalente a uma chamada para a função que substitui um buffer interno para mbchar
e um caractere nulo largo para wchar
.
O objeto de estado de conversão state
permite que você faça chamadas subsequentes para essa função e outras funções reiniciáveis que mantenham o estado de deslocamento dos caracteres de saída multibyte. Os resultados são indefinidos quando você combina o uso de funções reiniciáveis e não reiniciáveis.
Para converter caracteres UTF-16 em caracteres multibyte não UTF-8, use as funções ,_wcstombs_l
, wcstombs_s ou _wcstombs_s_l.wcstombs
Requisitos
Rotina | Cabeçalho necessário |
---|---|
c16rtomb , c32rtomb |
C, C++: <uchar.h> |
Para obter informações sobre compatibilidade, consulte Compatibilidade.
Confira também
Conversão de dados
Localidade
Interpretação de sequências de caracteres multibyte
mbrtoc16
, mbrtoc32
wcrtomb
wcrtomb_s