STL 中的UTF-8 字元轉換
在C 開發中,經常需要在UTF-8 和寬字元字串之間進行轉換與平台無關的方式。雖然特定作業系統可能提供 MultiByteToWideChar 和 WideCharToMultiByte 等專用函數,但有必要探索可移植程式碼的跨平台解決方案。
C 標準函式庫透過 C 11 的標準化 boost 函式庫提供了強大的解決方案。透過利用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中文網其他相關文章!