Output UTF-8 (u8) std::string

Output UTF-8 (u8) std::string

本文关键字:std string u8 UTF-8 Output      更新时间:2023-10-16

在C 11及更高版本中,使用字符串文字上的u8前缀可以创建 char(byte)序列,该序列已编码为utf-8。

如何将这些序列输出到std::ostream?您如何告诉std::ostream输出的const char *std:string包含在UTF-8中编码的字符,而不是默认编码?

您不这样做。该流不知道或关心文本的编码是什么。尽管它的名称,但char并未将std:ostream视为包含在平台编码中编码的字符。它必须将char视为要写出的字节。它以给定的"文本"(字节序列)(在可能执行n翻译之外)的"文本"(字节序列),假设您不会将其与改变此情况的刻度相融合。如果您编写符合UTF-8的字符,那么这就是输出中最终的内容。