[英]How do I write a std::codecvt facet?
我如何編寫 std::codecvt 方面? 我想寫一些從 UTF-16 到 UTF-8,從 UTF-16 到系統當前代碼頁(windows,所以 CP_ACP),以及系統的 OEM 代碼頁(windows,所以 CP_OEM)。
跨平台是首選,但 Windows 上的 MSVC 也很好。 是否有關於如何正確使用此類的任何類型的教程或任何此類性質的內容?
我已經基於 iconv 寫了一個。 它可以在 Windows 或任何 POSIX 操作系統上使用。 (您顯然需要與 iconv 鏈接)。
“如何”問題的答案是遵循codecvt 參考。 兩年前我在互聯網上找不到更好的說明。
重要通知
這個 std::codecvt 的問題是它是一個尋找問題的解決方案。 或者更確切地說,它試圖解決的問題是無法解決的,因此任何試圖將其用作解決方案的人都會非常失望。
如果您不知道您的輸入或輸出是哪個字符集,那么 std::codecvt 將永遠無法幫助您。 相反,如果您確實知道正在使用哪些字符集,那么您可以通過單個函數調用輕松地在它們之間進行轉換。 將該函數調用包裝在一堆復雜的模板中並不會改變這些基本原理。
...這就是為什么沒有人使用 std::codecvt 的原因。 我建議你做其他人都做的事情,假裝它從未發生過。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.