我需要使用多平臺(Linux,Windows)方法將UTF-8字符串轉換爲本地多字節編碼(cp1251)。然而,我找不到一個標準(最好是STL)方法,它可以在兩種平臺上工作,除了首先將UTF-8轉換(使用std::codecvt
和std::locale
)爲寬字符串,然後將寬字符串轉換爲本地字符串。有一種方法可以通過一次轉換來完成此操作嗎?UTF-8到STL的本地多字節
0
A
回答
0
標準庫不包含任何將執行此操作的內容。至少並非如此,並且您需要的組件之一尚未在任何C++實現中實現:您可以使用可在UTF-8和UTF-16或UTF-32之間進行轉換的codecvt方面,然後使用<cuchar>
標題將UTF-16或UTF-32轉換爲區域設置多字節編碼。
由於該選項不可用,所以最好的選擇是使用便攜式庫,或者使用各種平臺特定的API自己實現轉換,然後使用可跨平臺使用的通用API對其進行打包。您可以在posix平臺上使用libiconv,在Windows上使用MultiByteToWideChar和WideCharToMultiByte。
+0
感謝您澄清這一點。我想我會用STL進行兩階段轉換。 – 2014-08-31 07:06:26
相關問題
- 1. 多字節的UTF8字符
- 2. PHP多字節替代UTF8
- 3. 字節數組到UTF8 CString
- 4. 流到UTF8字符串,沒有字節[]
- 5. UTF8字節到字符串和Winsock GetStream
- 6. Mysql HEX函數解碼多字節utf8
- 7. STL地圖本身?
- 8. 刪除4個字節的UTF8字符
- 9. memcmp多個字節,找不到地址
- 10. 「關閉」 binmode(STDOUT,「:UTF8」)本地
- 11. 如何解碼多字節utf8字符串? (C++)
- 12. 載入本地STL文件
- 13. .NET系統::字符串到UTF8字節存儲在字符*
- 14. 將字節[]轉換爲UTF8字符串
- 15. 將字符串轉換爲utf8字節
- 16. Cassandra 1.2.5 - 無效的UTF8字節
- 17. STL排序是否支持UTF8?
- 18. 寫字節數組到UTF8編碼的文件
- 19. 我遇到無效UTF8字節序列的問題
- 20. Heroku的DB:拉來本地MySQL UTF8
- 21. 的行數UTF8字符從本地<String>
- 22. 多字節語言的網站本地化
- 23. 如何字節保存到一個NSString與UTF8編碼
- 24. perl-修剪utf8字節到'長度'和消毒數據
- 25. 插入「本」到從構造函數的STL地圖
- 26. 將字節字符串解析爲本地斯卡拉字節
- 27. 轉換UINT8到字符UTF8
- 28. 有多少有效的utf8字符?
- 29. 使用本地類與STL算法
- 30. 從本地編碼轉換C字符串以UTF8
1)cp1251不是多字節編碼2)Linux幾乎從不使用cp1251,它幾乎只使用UTF-8。 – 2014-08-31 12:50:11