Heim >Backend-Entwicklung >C++ >Wie kann ich einen UTF-8-String sicher in einen Wstring in C konvertieren?
C: Konvertieren eines Strings in einen Wstring unter Beibehaltung der Codierung
Sie erhalten einen String s mit japanischen Zeichen und möchten dessen Inhalt zuweisen zu einem wstring, ws. Die Aufgabe besteht darin, diese Aufgabe auszuführen, ohne dass Codierungsprobleme auftreten.
Lösung:
Bei Verwendung von C 11 und höher kann diese Aufgabe ausschließlich mit der Standardbibliothek ausgeführt werden.
Schritt 1: Notwendiges hinzufügen Header
#include <locale> #include <codecvt> #include <string>
Schritt 2: Erstellen Sie einen Konverter
std::wstring_convert<std::codecvt_utf8_utf16<wchar_t>> converter;
Dieser Konverter übernimmt die Konvertierung zwischen UTF-8 (die Kodierung von s) und UTF-16 (die Kodierung von ws).
Schritt 3: Konvertieren Sie die Zeichenfolge in a wstring
std::wstring ws = converter.from_bytes(s);
Beispiel:
std::string s = "おはよう"; std::wstring ws; std::wstring_convert<std::codecvt_utf8_utf16<wchar_t>> converter; ws = converter.from_bytes(s);
Hinweis:
Das obige ist der detaillierte Inhalt vonWie kann ich einen UTF-8-String sicher in einen Wstring in C konvertieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!