std:: wstring_convert
|
定义于头文件
<locale>
|
||
|
template
<
class
Codecvt,
|
(C++11 起)
(C++17 中弃用) (C++26 中移除) |
|
类模板
std::wstring_convert
用于在字节字符串
std::string
和宽字符串
std::
basic_string
<
Elem
>
之间执行转换,该转换通过独立的代码转换 facet
Codecvt
实现。
std::wstring_convert
会获取该转换 facet 的所有权,因此无法使用由 locale 管理的 facet。
适合与
std::wstring_convert
配合使用的标准facet包括:用于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
(公开成员函数) |
|
|
operator=
|
复制赋值运算符被删除
(公开成员函数) |
销毁
wstring_convert
及其转换 facet
(公开成员函数) |
|
|
将字节字符串转换为宽字符串
(公开成员函数) |
|
|
将宽字符串转换为字节字符串
(公开成员函数) |
|
|
返回成功转换的字符数量
(公开成员函数) |
|
|
返回当前转换状态
(公开成员函数) |
参见
|
字符
转换 |
区域设置定义的多字节
(UTF-8, GB18030) |
UTF-8
|
UTF-16
|
|---|---|---|---|
| UTF-16 | mbrtoc16 / c16rtomb (with C11's DR488) |
codecvt
<
char16_t
,
char
,mbstate_t
>
|
N/A |
| UCS-2 | c16rtomb (without C11's 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)
(deprecated in C++17)
(removed in C++26)
|
在字节流缓冲区与宽字符流缓冲区之间执行转换
(类模板) |
|
(C++11)
(deprecated in C++17)
(removed in C++26)
|
在 UTF-8 与 UCS-2/UCS-4 之间进行转换
(类模板) |
|
(C++11)
(deprecated in C++17)
(removed in C++26)
|
在 UTF-8 与 UTF-16 之间进行转换
(类模板) |