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 中国語 Web サイトの他の関連記事を参照してください。