<codecvt>
定义了多种类模板,用于描述基于类模板 codecvt 的对象。 此对象可用作区域设置 facet 来控制 Elem
类型的值序列和 char
类型的值序列之间的转换。
语法
#include <codecvt>
备注
在此标头中声明的区域设置 facet 在几个字符编码之间进行转换。 对于宽字符(存储在固定大小整数程序中):
UCS-4 是在程序内作为 32 位整数的编码的 Unicode (ISO 10646)。
UCS-2 是在程序内作为 16 位整数的编码的 Unicode。
UTF-16 是在程序内作为任意一个或两个 16 位整数的编码的 Unicode。 (请注意,这不符合标准 C 或标准 C++ 的有效宽字符编码的全部要求。尽管如此,它还是被广泛使用。)
对于字节流(存储在文件中,作为字节序列传输,或存储在 char
数组中的程序内):
Utf-8 是字节流中已编码的 Unicode,为具有确定性字节顺序的一个或多个八位字节。
UTF 16LE 是字节流中作为 UTF-16 已编码的 Unicode,每个 16 位整数表示为两个八位字节,不重要字节优先。
UTF 16BE 是字节流中作为 UTF-16 已编码的 Unicode,每个 16 位整数表示为两个八位字节,重要字节优先。
枚举
名称 | 描述 |
---|---|
codecvt_mode | 指定区域设置 facet 的配置信息。 |
类
类 | 说明 |
---|---|
codecvt_utf8 | 表示在编码为 UCS-2 或 UCS-4 的宽字符和编码为 UTF-8 的字节流之间转换的 locale facet。 |
codecvt_utf8_utf16 | 表示在编码为 UTF-16 的宽字符和编码为 UTF-8 的字节流之间转换的区域设置 facet。 |
codecvt_utf16 | 表示在编码为 UCS-2 或 UCS-4 的宽字符和编码为 UTF-16LE 或 UTF-16BE 的字节流之间转换的 locale facet。 |
要求
标头:<codecvt>
命名空间: std