std:: mbrtoc8
|
Definiert im Header
<cuchar>
|
||
|
std::
size_t
mbrtoc8
(
char8_t
*
pc8,
const
char
*
s,
|
(seit C++20) | |
Konvertiert ein schmales Multibyte-Zeichen in die UTF-8-Kodierung.
Wenn s kein Nullzeiger ist, untersucht die Funktion maximal n Bytes der Multibyte-Zeichenkette, beginnend mit dem von s gezeigten Byte, um die Anzahl der Bytes zu bestimmen, die zum Abschließen des nächsten Multibyte-Zeichens (einschließlich aller Shift-Sequenzen) erforderlich sind. 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 std :: mbrtoc8 ( nullptr, "" , 1 , ps ) .
Wenn das erzeugte UTF-8-Codeelement u8 ' \0 ' ist, repräsentiert der Konvertierungszustand * ps den initialen Schaltzustand.
Die Multibyte-Kodierung, die von dieser Funktion verwendet wird, 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 Multibyte-Zeichens, das erfolgreich von s konvertiert wurde.
- static_cast < std:: size_t > ( - 3 ) wenn das nächste UTF-8-Code-Unit eines Zeichens, dessen Kodierung aus mehreren Code-Units besteht, nun in * pc8 geschrieben wurde. In diesem Fall werden keine Bytes von der Eingabe verarbeitet.
- static_cast < std:: size_t > ( - 2 ) wenn die nächsten n Bytes ein unvollständiges, aber bisher gültiges Multibyte-Zeichen bilden. Nichts wird nach * pc8 geschrieben.
- static_cast < std:: 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 |
Siehe auch
|
(C++20)
|
konvertiert UTF-8-String in schmale Multibyte-Kodierung
(Funktion) |
|
(C++11)
|
konvertiert ein schmales Multibyte-Zeichen in UTF-16-Kodierung
(Funktion) |
|
C-Dokumentation
für
mbrtoc8
|
|