首頁 >後端開發 >C++ >如何將 C 字串轉換為 Wstring?

如何將 C 字串轉換為 Wstring?

Linda Hamilton
Linda Hamilton原創
2024-12-29 13:35:141010瀏覽

How to Convert C   Strings to Wstrings?

將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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn