Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menukar C Strings ke Wstrings?
Menukar Rentetan C kepada Rentetan Wstring
Dalam C , menukar rentetan (atau char) kepada rentetan w (atau wchar_t ) membolehkan anda bekerja dengan aksara lebar, yang digunakan untuk mewakili aksara bukan ASCII seperti Kanji Jepun atau aksara Cyrillic.
Menggunakan Perpustakaan Standard
Untuk penukaran antara UTF-8 dan UTF-16, perpustakaan standard menyediakan penyelesaian yang komprehensif:
#include <locale> #include <codecvt> #include <string> std::wstring_convert<std::codecvt_utf8_utf16<wchar_t>> converter; std::wstring wstr = converter.from_bytes("おはよう");
Contoh
Contoh berikut menunjukkan ini penukaran:
#include <iostream> int main() { std::string a = "Привет всем!"; std::wstring b = std::wstring_convert<std::codecvt_utf8_utf16<wchar_t>>().from_bytes(a); std::cout << b << std::endl; return 0; }
Output:
Привет всем!
Pendekatan Warisan (Ditamatkan)
Perhatikan bahawa pengepala codecvt tidak digunakan dalam C 17. Untuk sistem tanpa pustaka gantian, anda boleh menggunakan warisan pendekatan:
#include <wchar.h> wchar_t* wcs = (wchar_t*)MultiByteToWideChar(CP_UTF8, 0, a.c_str(), -1, NULL, 0);
Walau bagaimanapun, kaedah ini mungkin tidak mengendalikan aksara Unikod tertentu dengan betul.
Atas ialah kandungan terperinci Bagaimana untuk Menukar C Strings ke Wstrings?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!