首页 > 解决方案 > codecvt_utf8_utf16 可以和 wfstream 一起使用吗?

问题描述

我在cppreference上看到了这个:

这是一个 N:M 转换方面,不能与 std::basic_filebuf 一起使用(它只允许内部和外部编码之间的 1:N 转换,例如 UTF-32/UTF-8)。

这是否意味着我不能将 codecvt_utf8_utf16 与 fstream 一起使用来 R/W 一个 utf8 文件,并且如下代码无效?

std::wifstream f("demo.txt");
f.imbue(std::locale(f.getloc(), new std::codecvt_utf8_utf16<wchar_t>));
std::wstring test;
f >> test;

什么是“N:M 转换方面”?

标签: c++visual-c++utf-8fstreamutf-16

解决方案


推荐阅读