STL でのプラットフォームに依存しない UTF8 とワイド文字の変換
std::string の UTF8 文字列と std のワイド文字文字列間の変換: :wstring は、クロスプラットフォーム アプリケーションを開発する場合の一般的なタスクです。ただし、この点に関する標準 C ライブラリの制限により課題が生じる可能性があります。
幸いなことに、C 11 では std::wstring_convert クラスの導入により解決策が提供されています。このクラスは、std::codecvt テンプレートを使用して、特定の文字エンコード スキームを使用した変換を実行します。
UTF8 から UTF16 への変換の場合:
std::string source; ... std::wstring_convert<std::codecvt_utf8_utf16<char16_t>, char16_t> convert; std::u16string dest = convert.from_bytes(source);
UTF16 から UTF8 への変換の場合:
std::u16string source; ... std::wstring_convert<std::codecvt_utf8_utf16<char16_t>, char16_t> convert; std::string dest = convert.to_bytes(source);
このアプローチはプラットフォームに依存せず、UTF8 とワイド文字変換を処理する標準的な方法を提供します。 STLで
以上がC STL でプラットフォームに依存しない UTF-8 およびワイド文字変換を実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。