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中文網其他相關文章!