stringwstring_to_utf8(conststd::wstring&wstr){std::wstring_convert<std::codecvt_utf8<wchar_t>,wchar_t>converterX;returnconverterX.to_bytes(wstr);}std::wstringutf8_to_wstring(conststd::string&str){std::wstring_convert<std::codecvt_utf8<wchar_t>>myconv;returnmyconv.from_bytes(str);}// 调用// locale(""):调用构造函数创建一个local,其中的空字符串具有特殊含义:使用系统环境中缺省的localewcout.imbue(locale(""));// wcout default is Not system codec, std::wstringwstr=L"中文wstr";// L代表是wchar_t组成的std::wstringcout<<"中文cout"<<std::endl;// 输出:中文coutwcout<<wstr<<std::endl;// 输出:中文wstrwcout<<utf8_to_wstring(wstring_to_utf8(wstr))<<std::endl;// 输出:中文wstrwcout.clear();// 如果发生错误,清除掉了错误状态wcout<<std::endl;// 调用fllush,刷新缓冲区cout.imbue(locale(""));// cout default is system codec,可以不调用std::stringstr="中文str";cout<<str<<std::endl;// 中文str