std::wstring_convert
来自 cppreference.cn
| 定义于头文件 <locale> |
||
| template< class Codecvt, |
(C++11 起) (C++17 中已弃用) (C++26 中移除) |
|
类模板 std::wstring_convert 使用独立的字符转换平面 Codecvt 在字节字符串 std::string 和宽字符串 std::basic_string<Elem> 之间执行转换。std::wstring_convert 拥有该转换平面的所有权,并且不能使用由 locale 管理的平面。
适用于 std::wstring_convert 的标准平面是用于 UTF-8/UCS-2 和 UTF-8/UCS-4 转换的 std::codecvt_utf8 和用于 UTF-8/UTF-16 转换的 std::codecvt_utf8_utf16。
目录 |
[编辑] 嵌套类型
| 类型 | 定义 |
byte_string
|
std::basic_string<char, std::char_traits<char>, Byte_alloc> |
wide_string
|
std::basic_string<Elem, std::char_traits<Elem>, Wide_alloc> |
state_type
|
typename Codecvt::state_type |
int_type
|
typename wide_string::traits_type::int_type |
[编辑] 数据成员
| 成员 | 描述 |
byte_string byte_err_string |
出错时显示的字节字符串 (仅用于阐释的成员对象*) |
wide_string wide_err_string |
出错时显示的宽字符串 (仅用于阐释的成员对象*) |
Codecvt* cvtptr |
指向已分配转换对象的指针 (仅用于阐释的成员对象*) |
state_type cvtstate |
转换状态对象 (仅用于阐释的成员对象*) |
std::size_t cvtcount |
转换计数 (仅用于阐释的成员对象*) |
[编辑] 成员函数
构造新的 wstring_convert(public member function) | |
| operator= |
拷贝赋值运算符已被删除 (公开成员函数) |
销毁 wstring_convert 及其转换平面(public member function) | |
| 将字节字符串转换为宽字符串 (public member function) | |
| 将宽字符串转换为字节字符串 (public member function) | |
| 返回成功转换的字符数 (public member function) | |
| 返回当前转换状态 (public member function) |
[编辑] 参阅
| 字符 转换 |
由区域设置定义的多字节 (UTF-8, GB18030) |
UTF-8 |
UTF-16 |
|---|---|---|---|
| UTF-16 | mbrtoc16 / c16rtomb (带 C11 的 DR488) |
codecvt<char16_t,char,mbstate_t> |
不适用 |
| UCS-2 | c16rtomb (不带 C11 的 DR488) | codecvt_utf8<char16_t> | codecvt_utf16<char16_t> |
| UTF-32 |
codecvt<char32_t,char,mbstate_t> |
codecvt_utf16<char32_t> | |
| 系统 wchar_t UTF-32 (非 Windows) |
mbsrtowcs / wcsrtombs |
codecvt_utf8<wchar_t> | codecvt_utf16<wchar_t> |
| (C++11)(C++17 中已弃用)(C++26 中已移除) |
执行字节流缓冲区和宽流缓冲区之间的转换 (类模板) |
| (C++11)(C++17 中已弃用)(C++26 中已移除) |
在 UTF-8 和 UCS-2/UCS-4 之间转换 (类模板) |
| (C++11)(C++17 中已弃用)(C++26 中已移除) |
在 UTF-8 和 UTF-16 之间转换 (类模板) |