c16rtomb
, c32rtomb
Convertire un carattere wide UTF-16 o UTF-32 in un carattere multibyte UTF-8.
Sintassi
size_t c16rtomb(
char *mbchar,
char16_t wchar,
mbstate_t *state
);
size_t c32rtomb(
char *mbchar,
char32_t wchar,
mbstate_t *state
);
Parametri
mbchar
Puntatore a una matrice per archiviare il carattere multibyte UTF-8 convertito.
wchar
Carattere wide da convertire.
state
Puntatore a un oggetto mbstate_t
.
Valore restituito
Numero di byte archiviati nell'oggetto matrice mbchar
, comprese tutte le sequenze di spostamento. Se wchar
non è un carattere wide valido, viene restituito errno
il valore (size_t
)(-1), viene impostato su EILSEQ
e il valore di state
non è specificato.
Osservazioni:
La c16rtomb
funzione converte il carattere wchar
UTF-16 LE nella sequenza di caratteri narrow UTF-8 equivalente. Se mbchar
non è un puntatore Null, la funzione archivia la sequenza convertita nell'oggetto matrice a mbchar
cui punta . Vengono archiviati fino a MB_CUR_MAX
in mbchar
e state
viene impostato sullo stato di spostamento multibyte risultante.
Se wchar
è un carattere wide Null, viene archiviata una sequenza necessaria per ripristinare lo stato iniziale dello spostamento, se necessario, seguita dal carattere Null. state
è impostato sullo stato di conversione iniziale. La funzione c32rtomb
è identica, ma converte un carattere UTF-32.
Se mbchar
è un puntatore Null, il comportamento è equivalente a una chiamata alla funzione che sostituisce un buffer interno al posto di mbchar
e un carattere Null wide al posto di wchar
.
L'oggetto dello stato di conversione state
consente di eseguire chiamate successive a questa funzione e altre funzioni riavviabili che mantengono lo stato di spostamento dei caratteri multibyte di output. I risultati non sono definiti quando si combina l'uso di funzioni riavviabili e non riavviabili.
Per convertire caratteri UTF-16 in caratteri multibyte non UTF-8, usare le funzioni ,_wcstombs_l
wcstombs_s o _wcstombs_s_l.wcstombs
Requisiti
Ciclo | Intestazione obbligatoria |
---|---|
c16rtomb , c32rtomb |
C, C++: <uchar.h> |
Per informazioni sulla compatibilità, vedere Compatibilità.
Vedi anche
Conversione dati
impostazioni locali
Interpretazione di sequenze di caratteri multibyte
mbrtoc16
, mbrtoc32
wcrtomb
wcrtomb_s