【问题标题】:Output UTF-8 (u8) std::string输出 UTF-8 (u8) std::string
【发布时间】:2017-12-07 23:55:38
【问题描述】:

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

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

【问题讨论】:

标签: c++ utf-8 iostream


【解决方案1】:

你没有。流不知道也不关心文本的编码是什么。尽管有它的名字,char 不会被 std:ostream 视为包含在平台编码中编码的字符。它必须将char 视为要写出的字节。它会按照给定的方式写入“文本”(字节序列)(除了可能执行\n 翻译之外),假设您没有给它灌输改变这一点的方面。如果您编写符合 UTF-8 的字符,那么这就是最终输出的内容。

【讨论】:

  • 您是说std::ostreamstd:string 视为字节序列(每个char 一个字节),而不是平台编码中的字符序列?
  • @Raedwald:是的。这只是char 的序列。它还会将输入视为什么?
猜你喜欢
  • 1970-01-01
  • 2013-09-26
  • 2011-11-01
  • 2013-09-11
  • 2014-03-01
  • 2011-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多