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,直到有一个正常工作的替代。

但现在没有一个。

原作者:
...