Condividi tramite


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 EILSEQe 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 mbcharcui punta . Vengono archiviati fino a MB_CUR_MAX in mbchare 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 dei dati
impostazioni locali
Interpretazione di sequenze di caratteri multibyte
mbrtoc16, mbrtoc32
wcrtomb
wcrtomb_s