读了很多关于编码的文章,我终于弄糊涂了
我把我的困惑归纳为两个问题:
-
是否有
encoding
处于stream
级别?我的意思是,设置stream
的encoding
有什么意义吗?或者流完全不知道编码? -
如果
streams
不知道encoding
,那么std::locale
和std::imbue
的主要目的是什么?
-
不,不是真的。尽管通过
std::basic_filebuf<CharT>
执行的所有文件I/O操作都使用流中包含的区域设置的std::codecvt<CharT, char, std::mbstate_t>
方面。 -
std::basic_ios::imbue
的主要目的是使流以区域设置相关的方式格式化内容。例如十进制分隔符、千位分隔符等等。