STL での UTF-8 文字変換
C 開発では、UTF-8 文字列とワイド文字列の間で変換する必要がよくあります。プラットフォームに依存しない方法。特定のオペレーティング システムでは MultiByteTowideChar や WideCharToMultiByte などの専用関数が提供される場合がありますが、移植可能なコードのためのクロスプラットフォーム ソリューションを検討することが必要になります。
C 標準ライブラリは、C 11 の標準化されたブースト ライブラリを通じて堅牢なソリューションを提供します。 std::wstring 型 (現在は std::u16string と呼ばれています) を利用すると、次のコードで変換を行うことができます:
UTF-8 から UTF-16
std::string source; ... std::wstring_convert<std::codecvt_utf8_utf16<char16_t>, char16_t> convert; std::u16string dest = convert.from_bytes(source);
UTF-16 からUTF-8
std::u16string source; ... std::wstring_convert<std::codecvt_utf8_utf16<char16_t>, char16_t> convert; std::string dest = convert.to_bytes(source);
このアプローチは、クロスプラットフォーム開発におけるさまざまなユースケースに対応する、柔軟で移植可能な文字変換方法を提供します。
以上がC でクロスプラットフォーム UTF-8 およびワイド文字列変換を実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。