mbrtoc8
|
Défini dans l'en-tête
<uchar.h>
|
||
| (depuis C23) | ||
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 les séquences 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 à 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 comme 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 . - ( 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é en entrée dans ce cas.
- ( size_t ) - 2 si les n octets suivants constituent un caractère multi-octets incomplet, mais jusqu'à présent valide. Rien n'est écrit dans * pc8 .
- ( 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 |
Références
- Norme C23 (ISO/IEC 9899:2024) :
-
- 7.30.1.1 La fonction mbrtoc8
Voir aussi
|
(C23)
|
convertit une chaîne UTF-8 en encodage multioctet étroit
(fonction) |
|
Documentation C++
pour
mbrtoc8
|
|