c++ - C++ 不推薦的標頭 <codecvt> 替換

  显示原文与译文双语对照的内容
148 4

一點前景:我需要將 UTF-8 XML文件轉換為 UTF-16 ( 帶著正確的頭當然) 。所以我搜索了通常的方法,將 UTF-8 轉換為 UTF-16,發現一個應該使用 <codecvt>的模板。

但是現在,當它是不推薦的of時,我想知道做同一任務的新公共方式是什麼

( 不要介意使用升級,但除這裡之外,我更喜歡盡可以能靠近標準庫。)

时间:原作者:0个回答

100 0

<locale> 本身的std::codecvt 模板不被否決。對於 UTF-8 到 UTF-16,仍然存在std::codecvt<char16_t, char, std::mbstate_t>專用化。

但是,由於 std::wstring_convertstd::wbuffer_convert 不符合標準轉換方面,所以沒有任何簡單的方法可以以使用方法轉換字元串。

因此,就像Bolas已經回答的:自己實現( 或者你可以使用第三方庫,如下所示) 或者繼續使用已經廢棄的API 。

原作者:
61 1

不用擔心。

根據 ,相同的信息源:

圖書館組件應退休至附件D,沿側,直到適當的替換為標準的。

因此,你仍然可以使用utill來實現新的。更安全的版本。

原作者:
143 3

新的方法是。你自己寫。或者依賴於不推薦的功能。希望標準委員會不會真正地刪除 codecvt,直到有一個正常工作的替代。

但現在沒有一個。

原作者:
...