C : エンコーディングを維持しながら文字列を wstring に変換
日本語の文字を含む文字列 s が与えられ、その内容を代入したいと考えています。 wstring、ws に変換します。タスクは、エンコードの問題を発生させずにこの割り当てを実行することです。
解決策:
C 11 以降を使用すると、このタスクは標準ライブラリのみで実行できます。
ステップ 1: 必要な情報を含めるヘッダー
#include <locale> #include <codecvt> #include <string>
ステップ 2: コンバーターを作成する
std::wstring_convert<std::codecvt_utf8_utf16<wchar_t>> converter;
このコンバーターは、UTF-8 (s のエンコーディング) 間の変換を処理します。および UTF-16 (ws のエンコーディング)。
ステップ 3: 変換文字列を wstring に変換します
std::wstring ws = converter.from_bytes(s);
例:
std::string s = "おはよう"; std::wstring ws; std::wstring_convert<std::codecvt_utf8_utf16<wchar_t>> converter; ws = converter.from_bytes(s);
注:
以上がC で UTF-8 文字列を wstring に安全に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。