C++ 用于字符串编码的locale to_utf函数,喜欢抛出

C++ 用于字符串编码的locale to_utf函数,喜欢抛出,c++,string,locale,boost-locale,C++,String,Locale,Boost Locale,我在使用boost在不同的字符串编码之间转换时遇到问题。 ,我试着这样做: boost::locale::generator gen; std::locale loc = gen.generate("");// encoding local to the computer. //std::locale loc = gen.generate("en_US.UTF-8"); // tried this too //std::locale loc = gen.generate("en_US.UTF-8

我在使用boost在不同的字符串编码之间转换时遇到问题。 ,我试着这样做:

boost::locale::generator gen;
std::locale loc = gen.generate("");// encoding local to the computer.
//std::locale loc = gen.generate("en_US.UTF-8"); // tried this too
//std::locale loc = gen.generate("en_US.UTF-8"); //doesn't work either
std::string someString = "test me";
std::string output = boost::locale::conv::to_utf<char>(someString, loc);
boost::locale::generator;
std::locale loc=gen.generate(“”;//对计算机进行本地编码。
//std::locale loc=gen.generate(“en_US.UTF-8”);//我也试过这个
//std::locale loc=gen.generate(“en_US.UTF-8”)//也不行
std::string someString=“测试我”;
std::string output=boost::locale::conv::to_utf(someString,loc);
但是,当它尝试在内部使用_facet()以_utf时,它总是会失败,并使用std::bad_cast

这将建议生成区域设置的boost locale::info。但我尝试了几代人,但都不走运,我希望系统默认会一直工作,所以我肯定在其他地方做错了什么

有什么想法吗?

std::locale loc(“”);
std::locale loc("");
std::locale conv_loc = boost::locale::util::create_info(loc, loc.name());
std::string output = boost::locale::conv::to_utf<char>(someString, conv_loc);
std::locale conv_loc=boost::locale::util::create_info(loc,loc.name()); std::string output=boost::locale::conv::to_utf(someString,conv_loc);