Notice: Unexpected clearActionName after getActionName already called in /var/www/cppreference.com/public/includes/context/RequestContext.php on line 338
std::text_encoding - cppreference.com

std::text_encoding

来自cppreference.com
< cpp | text
(重定向自cpp/locale/text encoding
在标头 <text_encoding> 定义
struct text_encoding;
(C++26 起)

text_encoding 提供一种识别字符编码的机制。它用于确定编译时翻译环境的普通字符字面量编码和运行时执行环境的字符编码。

每个 text_encoding 对象都封装了一种字符编码方案,它以 text_encoding::id 中的一个枚举项和一个相应的以空终止字节字符串表示的名称所唯一标识。可以通过成员函数 mib()name() 来分别访问它们。如何确定一个对象所代表的字符编码方案是否被翻译或执行环境所支持是由实现定义的。

text_encoding 是一种可平凡复制 (TriviallyCopyable) 类型。表示字符编码方案的对应名称的数组对象,嵌套于 text_encoding 对象自身之中。所存储的名称被限制为最大 max_name_length 个字符,不包括空字符 '\0'

这个类既支持已注册也支持未注册的字符编码。已注册编码是 IANA 字符集注册表中的编码,排除以下字符编码:

  • NATS-DANO (33)
  • NATS-DANO-ADD (34)

此外,此类对已注册字符编码提供对以下各项的访问:

  1. 主名称:注册表中规定的官方名称。
  2. 别名: 注册表中的别名的由实现定义的超集。
  3. MIBenum 值: 用于识别字符编码代码的唯一标识符。

未注册编码可以以枚举项 id::otherid::unknown 和一个自定义名称来代表。

text_encoding 对象 e,若其 MIBenum 值既不是 id::other 也不是 id::unknown,则它维护以下不变式:

  • *e.name() != '\0'true,且
  • e.mib() == std::text_encoding(e.name()).mib()true

成员类型

呈现字符编码的 MIBenum 值
(公开成员枚举)[编辑]
对字符编码别名的 view
(公开成员类) [编辑]

成员常量

名称
max_name_length
[静态]
63
(公开静态成员常量)

数据成员

名称 描述
std::text_encoding::id mib_ (私有) MIBenum 值,默认值为 id::unknown
(仅用于阐述的成员对象*)
char[max_name_length + 1] name_ (私有) 存储的主名称
(仅用于阐述的成员对象*)

成员函数

创建
构造新的 text_encoding 对象
(公开成员函数) [编辑]