std::text_encoding::text_encoding

来自cppreference.com
< cpp‎ | text‎ | text encoding
constexpr text_encoding() = default;
(1) (C++26 起)
constexpr explicit text_encoding( std::string_view enc ) noexcept;
(2) (C++26 起)
constexpr text_encoding( std::text_encoding::id i ) noexcept;
(3) (C++26 起)

构造一个新文本编码对象。

1) 默认构造函数。构造一个带有 MIBenumstd::text_encoding::id::unknown 和空字符编码名称的对象。
2) 构造一个字符编码名称enc 的对象。
如果 enc 指名了除 NATS-DANONATS-DANO-ADD 以外的注册字符编码,那么所构造的对象会有对应的 MIBenum 值,否则它会有 MIBenum 值 std::text_encoding::id::other
enc.size() > std::text_encoding::max_name_length || enc.contains('\0') 则其行为未定义。
3) 构造一个 MIBenum 值为 i 的对象。
如果 istd::text_encoding::id::otherstd::text_encoding::id::unknown,那么所构造的对象会有空的字符编码名称,否则它会有其对应名称之一的名称。
i 不是 std::text_encoding::id 的一个具名枚举项,则其行为未定义。

Parameters

enc - 字符编码名称
i - MIBenum 值

示例

View on Compiler Explorer.

#include <text_encoding>
 
int main()
{
    constexpr std::text_encoding iso60 = std::text_encoding::ISO60DanishNorwegian;
    static_assert(iso60 == std::text_encoding("csISO60DanishNorwegian"));
    static_assert(iso60 == std::text_encoding("iso-ir-60"));
    static_assert(iso60 == std::text_encoding("NS_4551-1"));
}

外部链接

IANA 字符集名称与 MIBenum 值注册表