首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >有效的区域设置名称

有效的区域设置名称
EN

Stack Overflow用户
提问于 2009-12-17 23:53:25
回答 1查看 16.7K关注 0票数 24

如何找到有效的区域设置名称?

我目前使用的是MAC。

但关于其他平台的信息也会很有用。

代码语言:javascript
复制
#include <fstream>
#include <iostream>


int main(int argc,char* argv[])
{
    try
    {
        std::wifstream  data;
        data.imbue(std::locale("en_US.UTF-16"));
        data.open("Plop");
    }
    catch(std::exception const& e)
    {
        std::cout << "Exception: " << e.what() << "\n";
        throw;
    }
}

% g++ main.cpp
% ./a.out
Exception: locale::facet::_S_create_c_locale name not valid
Abort
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-12-17 23:59:40

This page says:

构造函数调用std:: locale ("")创建一个表示用户首选项的locale对象。该标准没有说明这意味着什么,但在许多系统上,库将环境变量(通常是LANGLC_ALL)中的任何内容替换为空字符串。例如,美国语言环境的常用名称是"en_US“。(在POSIX系统上,您可以键入 locale -a 以列出支持的语言环境的名称。)

locale -a应该可以为您工作。

如果你指的是来自C++标准库的编程,我不确定。

This stack overflow question可能也是相关的,但他似乎没有太多回应。

编辑

要使用UTF-16,您可能需要使用this question中提到的libiconv

票数 23
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1922713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档