gpt4 book ai didi

c++ - 用于字符串编码的 boost::locale to_utf 函数,喜欢抛出

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:19:13 26 4
gpt4 key购买 nike

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

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);

但当它尝试在 to_utf 中使用 use_facet() 时,它总是失败并返回 std::bad_cast。

这表明 boost locale::info facet isn't available对于正在生成的语言环境。但我尝试了几代不同的产品,但没有成功,我希望系统默认值始终有效,所以我一定是在其他地方做错了。

有什么想法吗?

最佳答案

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);

关于c++ - 用于字符串编码的 boost::locale to_utf 函数,喜欢抛出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11064091/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com