std :: locale :: facet :: _ S_create_c_locale名称无效

时间:2013-09-08 17:16:30

标签: c++ c++11

我正在尝试学习不同的语言环境和处理unicode,我选择将所有字符串UTF-8和我决定运行以下代码,但由于某种原因它会抛出错误,我无法弄清楚为什么..我到目前为止尝试了每个语言环境,除了“C”之外没有其他语境。我尝试了这里找到的语言环境列表:http://gcc.gnu.org/onlinedocs/libstdc++/manual/localization.html

和他们的例子:

#include <iostream>
#include <string>

int main()
{
    std::locale::global(std::locale("en_US.UTF-8"));

    return 0;
}

结果:

  

在抛出'std :: runtime_error'实例后终止调用   what():locale :: facet :: _ S_create_c_locale名称无效

我做错了什么?

我正在使用Mingw-Builds gcc / g ++ 4.8.1和Windows 8上的最新代码块。语言设置为EN_US,有时我切换到EN_GB。

1 个答案:

答案 0 :(得分:1)

上周我遇到了同样的问题,我编写了一个程序来打印Windows操作系统下所有支持的语言环境名称。

请参阅我的回答Print all std::locale names (Windows)

您正在寻找的区域设置只是&#34; en-US&#34;在Windows下。