c++ - 流级别的字符编码

标签 c++ string unicode encoding stream

<分区>

看了很多关于编码的文章,最后我搞糊涂了!
我将我的困惑总结为两个问题:

  1. stream 级别是否有任何编码?我的意思是,设置 streamencoding 有什么意义吗?还是流完全不知道编码?

  2. 如果 streams 不知道 encoding,那么 std::localestd 的主要目的是什么: :imbue?

最佳答案

  1. 不,不是真的。尽管所有文件 I/O 操作都是通过 std::basic_filebuf<CharT> 执行的使用 std::codecvt<CharT, char, std::mbstate_t>流中充满了语言环境的方面。

  2. 主要用途std::basic_ios::imbue是使流以依赖于语言环境的方式格式化内容。例如小数分隔符、千位分隔符等。

关于c++ - 流级别的字符编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17263899/

相关文章:

c++ - std::wstring 在 Windows 上是否支持 UTF-16 和 UTF-32?

c++ - C++ 中的条件运算符还能为我做什么?

c++ - 为什么我的 C++ 类定义失败?

java - 需要 6 位小数的纬度正则表达式

javascript - 如何在 JavaScript 中比较粗略的时间字符串

php - 将文本分成两半,但在最近的句子处

python - 将数字字符串转换为上标

python - Pandas UnicodeEncodeError : 'charmap' codec can't encode character

c++ - 为什么位是颠倒的?

c++ - CURLOPT_COOKIELIST 可以设置在不同的 curl easy handle 上吗?