將C 字串轉換為Wstring
在C 中,將字串(或char)轉換為wstring(或wchar_t )允許您使用寬字符,這些字符用於表示非ASCII字符,例如日語漢字或西里爾字符。
使用標準庫
對於UTF-8和UTF-16之間的轉換,標準庫提供了全面的解決方案:
#include <locale> #include <codecvt> #include <string> std::wstring_convert<std::codecvt_utf8_utf16<wchar_t>> converter; std::wstring wstr = converter.from_bytes("おはよう");
範例
以下範例示範此轉換:
#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; }
輸出:
Привет всем!
傳統方法(已棄棄用)
請注意,codecvt 標頭在 C中已棄用17. 對於沒有替換庫的系統,可以使用舊版方法:
#include <wchar.h> wchar_t* wcs = (wchar_t*)MultiByteToWideChar(CP_UTF8, 0, a.c_str(), -1, NULL, 0);
但是,此方法可能無法正確處理某些 Unicode 字元。
以上是如何將 C 字串轉換為 Wstring?的詳細內容。更多資訊請關注PHP中文網其他相關文章!