mbrtoc8
|
Definiert in Header
<uchar.h>
|
||
| (seit C23) | ||
Konvertiert ein schmales Multibyte-Zeichen in die UTF-8-Kodierung.
Wenn s kein Nullzeiger ist, untersucht es höchstens n Bytes der Multibyte-Zeichenkette, beginnend mit dem von s gezeigten Byte, um die Anzahl der Bytes zu bestimmen, die notwendig sind, um das nächste Multibyte-Zeichen (einschließlich aller Shift-Sequenzen) zu vervollständigen. Wenn die Funktion feststellt, dass das nächste Multibyte-Zeichen in s vollständig und gültig ist, konvertiert sie es in UTF-8 und speichert die erste UTF-8-Codeeinheit in * pc8 (falls pc8 nicht null ist).
Wenn die UTF-8-Kodierung des Multibyte-Zeichens in
*
s
aus mehr als einer UTF-8-Codeeinheit besteht, dann wird nach dem ersten Aufruf dieser Funktion
*
ps
so aktualisiert, dass der nächste Aufruf von
mbrtoc8
die zusätzlichen UTF-8-Codeeinheiten ausgibt, ohne
*
s
zu berücksichtigen.
Wenn s ein Nullzeiger ist, werden die Werte von n und pc8 ignoriert und der Aufruf entspricht mbrtoc8 ( nullptr, "" , 1 , ps ) .
Wenn das erzeugte UTF-8-Codeelement u8 ' \0 ' ist, repräsentiert der Konvertierungszustand * ps den initialen Schaltzustand.
Die von dieser Funktion verwendete Multibyte-Kodierung wird durch das aktuell aktive C-Locale festgelegt.
Inhaltsverzeichnis |
Parameter
| pc8 | - | Zeiger auf den Speicherort, an den die resultierenden UTF-8-Codeeinheiten geschrieben werden |
| s | - | Zeiger auf die als Eingabe verwendete Multibyte-Zeichenkette |
| n | - | Begrenzung der Anzahl der Bytes in s, die untersucht werden können |
| ps | - | Zeiger auf das Konvertierungszustandsobjekt, das bei der Interpretation der Multibyte-Zeichenkette verwendet wird |
Rückgabewert
Das erste der folgenden zutreffenden Kriterien:
- 0 wenn das von s konvertierte Zeichen (und gespeichert in * pc8 falls nicht null) das Nullzeichen war.
-
Die Anzahl der Bytes
[1,n]des erfolgreich von s konvertierten Multibyte-Zeichens. - ( size_t ) - 3 wenn die nächste UTF-8-Codeeinheit eines Zeichens, dessen Kodierung aus mehreren Codeeinheiten besteht, nun in * pc8 geschrieben wurde. In diesem Fall werden keine Bytes von der Eingabe verarbeitet.
- ( size_t ) - 2 wenn die nächsten n Bytes ein unvollständiges, aber bisher gültiges Multibyte-Zeichen darstellen. Nichts wird nach * pc8 geschrieben.
- ( size_t ) - 1 wenn ein Kodierungsfehler auftritt. Nichts wird nach * pc8 geschrieben, der Wert EILSEQ wird in errno gespeichert und der Wert von * ps ist nicht spezifiziert.
Beispiel
|
Dieser Abschnitt ist unvollständig
Grund: Kein Beispiel |
Referenzen
- C23-Standard (ISO/IEC 9899:2024):
-
- 7.30.1.1 Die mbrtoc8-Funktion
Siehe auch
|
(C23)
|
wandelt UTF-8-String in schmale Multibyte-Kodierung um
(Funktion) |
|
C++ documentation
für
mbrtoc8
|
|