Maison >développement back-end >C++ >Comment convertir une chaîne (ou char) en wstring (ou wchar_t) en C ?
Problème :
Étant donné une variable string ou char, comment pouvons-nous attribuer son contenu à une wstring ou wchar_t variable ?
Solution :
En supposant que la chaîne d'entrée est codée en UTF-8, la bibliothèque standard (C 11 et plus récent) inclut plusieurs techniques pour conversion entre UTF-8 et UTF-16 :
#include <locale> #include <codecvt> #include <string> using namespace std; // Create a converter using the UTF-8/UTF-16 codecvt wstring_convert<codecvt_utf8_utf16<wchar_t>> converter; // Convert a narrow (UTF-8) string to a wide (UTF-16) string wstring wide = converter.from_bytes(narrow); // Convert a wide (UTF-16) string to a narrow (UTF-8) string string narrow = converter.to_bytes(wide);
Exemple (Compilable et exécutable en ligne) :
#include <iostream> #include <locale> #include <codecvt> #include <string> int main() { // Sample input string in UTF-8 (see notes below for real-world scenarios): string s = "おはよう"; // Create a wstring to store the converted string wstring ws; // Convert the narrow (UTF-8) string to wide (UTF-16) std::wstring_convert<std::codecvt_utf8_utf16<wchar_t>> conv; ws = conv.from_bytes(s); // Print the converted wstring wcout << ws << endl; return 0; }
Remarques :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!