Heim > Backend-Entwicklung > C++ > Wie kann ich einen UTF-8-String sicher in einen Wstring in C konvertieren?

Wie kann ich einen UTF-8-String sicher in einen Wstring in C konvertieren?

Linda Hamilton
Freigeben: 2024-12-18 03:04:09
Original
129 Leute haben es durchsucht

How Can I Safely Convert a UTF-8 String to a wstring in C  ?

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>
Nach dem Login kopieren

Schritt 2: Erstellen Sie einen Konverter

std::wstring_convert<std::codecvt_utf8_utf16<wchar_t>> converter;
Nach dem Login kopieren

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);
Nach dem Login kopieren

Beispiel:

std::string s = "おはよう";
std::wstring ws;

std::wstring_convert<std::codecvt_utf8_utf16<wchar_t>> converter;
ws = converter.from_bytes(s);
Nach dem Login kopieren

Hinweis:

  • Diese Lösung geht davon aus s enthält gültige UTF-8-codierte Unicode-Daten.
  • Für komplexere Codierungsszenarien: Erwägen Sie die Verwendung von std::codecvt_utf8.

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage