問題:
文字列または char 変数が与えられた場合、その内容を wstring に割り当てるにはどうすればよいですか?または wchar_t 変数?
解決策:
入力文字列が UTF-8 でエンコードされていると仮定すると、標準ライブラリ (C 11 以降) にはいくつかの手法が含まれています。 UTF-8との間の変換用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);
例 (オンラインでコンパイル可能および実行可能):
#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; }
注:
以上がC で文字列 (または char) を wstring (または wchar_t) に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。