c16rtomb
, c32rtomb
Convertissez un caractère large UTF-16 ou UTF-32 en caractère multioctet UTF-8.
Syntaxe
size_t c16rtomb(
char *mbchar,
char16_t wchar,
mbstate_t *state
);
size_t c32rtomb(
char *mbchar,
char32_t wchar,
mbstate_t *state
);
Paramètres
mbchar
Pointeur vers un tableau pour stocker le caractère multioctet UTF-8 converti.
wchar
Caractère large à convertir.
state
Pointeur vers un objet mbstate_t
.
Valeur retournée
Nombre d’octets stockés dans un objet tableau mbchar
, y compris les séquences de décalage. Si wchar
ce n’est pas un caractère large valide, la valeur (size_t
-1) est retournée, errno
est définie EILSEQ
sur , et la valeur de celle-ci state
n’est pas spécifiée.
Notes
La c16rtomb
fonction convertit le caractère wchar
UTF-16 LE en séquence de caractères étroites multioctets UTF-8 équivalente. Si mbchar
ce n’est pas un pointeur Null, la fonction stocke la séquence convertie dans l’objet tableau pointé par mbchar
. Jusqu’à MB_CUR_MAX
octets sont stockés dans mbchar
, et state
prend comme valeur l’état du décalage multioctet qui en résulte.
S’il wchar
s’agit d’un caractère large Null, une séquence requise pour restaurer l’état de décalage initial est stockée, si nécessaire, suivie du caractère Null. state
est défini sur l’état de conversion initial. La fonction c32rtomb
est identique, mais elle convertit un caractère UTF-32.
Si mbchar
est un pointeur null, le comportement équivaut à un appel à la fonction qui remplace mbchar
par une mémoire tampon interne et wchar
par un caractère null large.
L’objet d’état de conversion state
vous permet d’effectuer des appels ultérieurs à cette fonction et à d’autres fonctions redémarrables qui tiennent à jour l’état du décalage des caractères multioctets de sortie. Les résultats ne sont pas définis lorsque vous mélangez l’utilisation de fonctions redémarrées et non redémarrées.
Pour convertir des caractères UTF-16 en caractères multioctets non UTF-8, utilisez les wcstombs
fonctions , wcstombs_s_wcstombs_l
ou _wcstombs_s_l.
Spécifications
Routine | En-tête requis |
---|---|
c16rtomb , c32rtomb |
C, C++ : <uchar.h> |
Pour plus d’informations sur la compatibilité, consultez Compatibilité.
Voir aussi
Conversion de données
Paramètres régionaux
Interprétation des séquences de caractères multioctets
mbrtoc16
, mbrtoc32
wcrtomb
wcrtomb_s