我正在尝试学习不同的语言环境和处理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。
答案 0 :(得分:1)
上周我遇到了同样的问题,我编写了一个程序来打印Windows操作系统下所有支持的语言环境名称。
请参阅我的回答Print all std::locale names (Windows)
您正在寻找的区域设置只是&#34; en-US&#34;在Windows下。