Wie verwende ich 3- und 4-Byte-Unicode-Zeichen mit Standard-C ++ - Zeichenfolgen?

In Standard C ++ haben wirchar undwchar_t zum Speichern von Zeichen.char Kann Werte speichern zwischen0x00 und0xFF. Undwchar_t Kann Werte speichern zwischen0x0000 und0xFFFF. std::string VerwendetcharEs können also nur 1-Byte-Zeichen gespeichert werden.std::wstring Verwendetwchar_tDamit können Zeichen mit einer Breite von bis zu 2 Byte gespeichert werden. Dies ist, was ich über Strings in C ++ weiß. Bitte korrigieren Sie mich, wenn ich bis jetzt etwas Falsches gesagt habe.

ich leseder Artikel für UTF-8 In Wikipedia habe ich erfahren, dass einige Unicode-Zeichen bis zu 4 Byte Speicherplatz belegen. Zum Beispiel das chinesische Schriftzeichen hat einen Unicode-Codepunkt0x24B62, der 3 Byte Speicherplatz belegt.

Gibt es einen AWL-String-Container für den Umgang mit solchen Zeichen? Ich suche so etwas wiestd::string32. Wir hatten auchmain() für ASCII-Einstiegspunkt,wmain() für Einstiegspunkt mit 16-Bit-Zeichenunterstützung; Welchen Einstiegspunkt verwenden wir für 3- und 4-Byte-Unicode-unterstützten Code?

Können Sie bitte ein kleines Beispiel hinzufügen?

(Mein Betriebssystem: Windows 7 x64)

Antworten auf die Frage(5)

Ihre Antwort auf die Frage