Heim >Backend-Entwicklung >C++ >Wie kann ich einen C-String zuverlässig in einen Wide-String konvertieren?
Konvertieren von Strings in Wstrings in C
Ihre Frage betrifft die Konvertierung eines Strings s in einen breiten String ws in C. Während einige Methoden den Originalinhalt nicht vollständig bewahren können, gibt es eine effektive Lösung mit Standardbibliothekskomponenten.
Problembeschreibung
Gegeben eine Zeichenfolge s, möchten Sie Weisen Sie seinen Inhalt einem wstring ws zu. Frühere Versuche haben jedoch zu einer verzerrten oder ungenauen Konvertierung geführt.
Lösung: Standardbibliothekskonvertierung
#include <locale> #include <codecvt> #include <string> std::wstring_convert<std::codecvt_utf8_utf16<wchar_t>> converter; std::wstring ws = converter.from_bytes(s);
Erklärung
Dieser Code verwendet Standardbibliotheksfunktionen, um Folgendes auszuführen Konvertierung.
Durch die Verwendung dieser Kodierungskonvertierung werden die ursprünglichen Unicode-Zeichen in s in ws genau beibehalten.
Das obige ist der detaillierte Inhalt vonWie kann ich einen C-String zuverlässig in einen Wide-String konvertieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!