codecvt 类
一种模板类,此模板类描述可用作区域设置 facet 的对象。 此模板类能够控制用于对程序中和程序外的字符进行编码的值序列之间的转换。
template<class CharType, class Byte, class StateType>
class codecvt : public locale::facet, codecvt_base;
参数
CharType
在程序中用于对字符进行编码的类型。Byte
用于对程序外的字符进行编码的类型。StateType
一种类型,此类型可用于表示字符表示形式的内部和外部类型之间转换的中间状态。
备注
此模板类描述可用作区域设置 facet 的对象,此对象用于控制 CharType 类型的值序列和 Byte 类型的值序列之间的转换。 StateType 类描述转换,StateType 类的对象存储转换期间的任何必要状态信息。
内部编码使用每个字符都包含固定字节数的表示形式,通常为 char 类型或 wchar_t 类型。
对于任何区域设置 facet,静态对象 id 的初始存储值为零。 首次尝试访问其存储值后,将在id 中存储唯一正值。
do_in 和 do_out 的模板版本始终返回 codecvt_base::noconv。
标准 C++ 库定义了若干显式专用化:
template<>
codecvt<wchar_t, char, mbstate_t>
在 wchar_t 和 char 序列之间转换。
template<>
codecvt<char16_t, char, mbstate_t>
在按 UTF-16 编码的 char16_t 序列和按 UTF-8 编码的 char 序列之间转换。
template<>
codecvt<char32_t, char, mbstate_t>
在按 UTF-32 (UCS-4) 编码的 char32_t 序列和按 UTF-8 编码的 char 序列之间转换。
构造函数
用作区域设置 facet 以处理转换的 codecvt 类的对象的构造函数。 |
Typedef
用于外部表示形式的字符类型。 |
|
用于内部表示形式的字符类型。 |
|
一种字符类型,此类型用于表示内部和外部表示形式进行转换期间的中间状态。 |
成员函数
测试是否不需要完成转换。 |
|
为测试是否不需要完成转换而调用的虚拟函数。 |
|
测试 Byte 流的编码是否依赖于状态、使用的 Byte 数和生成的 CharType 数之间的比率是否一致(如果是,则确定此比率的值)的虚拟函数。 |
|
为将内部 Byte 序列转换为外部 CharType 序列而调用的虚拟函数。 |
|
确定给定外部 Byte 序列中有多少 Byte 生成的内部 CharType 不超过给定数量并返回此 Byte 数的虚拟函数。 |
|
返回生成一个内部 CharType 所需的最大外部字节数的虚拟函数。 |
|
为将内部 CharType 序列转换为外部字节序列而调用的虚拟函数。 |
|
一种虚拟函数,通过调用此函数可提供依赖于状态的转换中需要的 Byte 以完成 Byte 序列中的最后一个字符。 |
|
测试 Byte 流的编码是否依赖于状态、使用的 Byte 数和生成的 CharType 数之间的比率是否一致(如果是,则确定此比率的值)。 |
|
将 Byte 序列的外部表示形式转换为 CharType 序列的内部表示形式。 |
|
确定给定外部 Byte 序列中有多少 Byte 生成的内部 CharType 不超过给定数量,并返回此 Byte 数。 |
|
返回生成一个内部 CharType 所需的最大外部 Byte 数。 |
|
将内部 CharType 序列转换为外部 Byte 序列。 |
|
提供依赖于状态的转换中需要的外部 Byte 以完成 Byte 序列中的最后一个字符。 |
要求
标头:<locale>
命名空间: std