答案 0 :(得分:0)
问题很明显:当u16_str
期望std::string
(作为变量的名称建议)时,您将cvt.to_bytes()
定义为std::u16string
。
以下代码适用于我
#include <locale>
#include <codecvt>
#include <iostream>
int main ()
{
std::u16string u16_str { u"aeiuoàèìòùAEIOU" };
std::wstring_convert<std::codecvt_utf8<char16_t>, char16_t> cvt;
std::string u8_str = cvt.to_bytes(u16_str);
std::cout << u8_str << std::endl;
return 0;
}