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
Verwendetchar
Es können also nur 1-Byte-Zeichen gespeichert werden.std::wstring
Verwendetwchar_t
Damit 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)