7

我正在尝试学习不同的语言环境和处理 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 name not valid

我究竟做错了什么?

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

4

1 回答 1

1

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

查看我的答案打印所有 std::locale 名称 (Windows)

您正在寻找的语言环境只是 Windows 下的“en-US”。

于 2014-12-29T03:13:40.187 回答