ホームページ >バックエンド開発 >C++ >C 文字列 (または char 配列) を wstring (または wchar_t 配列) に効率的に変換するにはどうすればよいですか?

C 文字列 (または char 配列) を wstring (または wchar_t 配列) に効率的に変換するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-26 02:12:09732ブラウズ

How to Efficiently Convert a C   String (or char array) to a wstring (or wchar_t array)?

C string (または char) を wstring (または wchar_t) に変換します

質問:

文字の配列として表される文字列 s が与えられると、 wstring ws、元のコンテンツを歪めずに s のコンテンツを ws に効率的に変換するにはどうすればよいですか?

回答:

この問題に対処するには、標準ライブラリ ( C 11 ) は、UTF-8 と UTF-16 を含む、異なる文字エンコーディング間の変換に対する包括的なサポートを提供します。標準ライブラリを使用した堅牢なソリューションは次のとおりです。

#include <locale>
#include <codecvt>
#include <string>

std::wstring_convert<std::codecvt_utf8_utf16<wchar_t>> converter;
// Convert string to wstring
std::wstring ws = converter.from_bytes(s);

追加メモ:

  • codecvt_utf8_utf16 コンバーターは、UTF-8 間の変換を処理します (入力文字列 s) および UTF-16 (出力 wstring で使用) ws).
  • wstring_convert クラスは、これらの変換を実行する便利で効率的な方法を提供します。
  • C 17 以降では、std::charconv ライブラリを優先して codecvt ヘッダーが非推奨になりました。 。ただし、ここで紹介するソリューションは、当面は機能し続けるはずです。

以上がC 文字列 (または char 配列) を wstring (または wchar_t 配列) に効率的に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。