std:: mbrtoc8
|
Défini dans l'en-tête
<cuchar>
|
||
|
std::
size_t
mbrtoc8
(
char8_t
*
pc8,
const
char
*
s,
|
(depuis C++20) | |
Convertit un caractère multioctet étroit en encodage UTF-8.
Si s n'est pas un pointeur nul, inspecte au plus n octets de la chaîne de caractères multioctets, en commençant par l'octet pointé par s pour déterminer le nombre d'octets nécessaires pour compléter le prochain caractère multioctet (y compris toute séquence de changement). Si la fonction détermine que le prochain caractère multioctet dans s est complet et valide, le convertit en UTF-8 et stocke la première unité de code UTF-8 dans * pc8 (si pc8 n'est pas nul).
Si l'encodage UTF-8 du caractère multioctet dans
*
s
consiste en plus d'une unité de code UTF-8, alors après le premier appel à cette fonction,
*
ps
est mis à jour de telle sorte que le prochain appel à
mbrtoc8
écrira les unités de code UTF-8 supplémentaires, sans prendre en compte
*
s
.
Si s est un pointeur nul, les valeurs de n et pc8 sont ignorées et l'appel est équivalent à std :: mbrtoc8 ( nullptr, "" , 1 , ps ) .
Si l'unité de code UTF-8 produite est u8 ' \0 ' , l'état de conversion * ps représente l'état de décalage initial.
L'encodage multioctet utilisé par cette fonction est spécifié par la locale C actuellement active.
Table des matières |
Paramètres
| pc8 | - | pointeur vers l'emplacement où les unités de code UTF-8 résultantes seront écrites |
| s | - | pointeur vers la chaîne de caractères multioctets utilisée en entrée |
| n | - | limite du nombre d'octets dans s pouvant être examinés |
| ps | - | pointeur vers l'objet d'état de conversion utilisé lors de l'interprétation de la chaîne multioctet |
Valeur de retour
Le premier des éléments suivants qui s'applique :
- 0 si le caractère converti à partir de s (et stocké dans * pc8 si non nul) était le caractère nul.
- le nombre d'octets [ 1 ... n ] du caractère multi-octets converti avec succès à partir de s .
- static_cast < std:: size_t > ( - 3 ) si l'unité de code UTF-8 suivante d'un caractère dont l'encodage consiste en plusieurs unités de code a maintenant été écrite dans * pc8 . Aucun octet n'est traité depuis l'entrée dans ce cas.
- static_cast < std:: size_t > ( - 2 ) si les n octets suivants constituent un caractère multi-octets incomplet, mais jusqu'ici valide. Rien n'est écrit dans * pc8 .
- static_cast < std:: size_t > ( - 1 ) si une erreur d'encodage se produit. Rien n'est écrit dans * pc8 , la valeur EILSEQ est stockée dans errno et la valeur de * ps n'est pas spécifiée.
Exemple
|
Cette section est incomplète
Raison : aucun exemple |
Voir aussi
|
(C++20)
|
convertit une chaîne UTF-8 en encodage multioctet étroit
(fonction) |
|
(C++11)
|
convertit un caractère multioctet étroit en encodage UTF-16
(fonction) |
|
Documentation C
pour
mbrtoc8
|
|