加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 为什么std :: locale loc(“en_US”)会抛出异常?

发布时间:2020-12-16 03:24:56 所属栏目:百科 来源:网络整理
导读:我尝试使用美国或英国语言环境字符串实例化std :: locale对象. std :: locale loc(“en_US”)和std :: locale loc(“en_GB”)都会引发错误的语言环境名称运行时异常.使用“”或“C”创建区域设置可以正常工作;但是,我在设置单个国家/地区时遇到问题. 我想这
我尝试使用美国或英国语言环境字符串实例化std :: locale对象.
std :: locale loc(“en_US”)和std :: locale loc(“en_GB”)都会引发错误的语言环境名称运行时异常.使用“”或“C”创建区域设置可以正常工作;但是,我在设置单个国家/地区时遇到问题.

我想这样做的原因是为了单元测试目的,以确保字符串排序方法的集合正常工作.

我还应该指出,我使用Visual Studio 2008在Windows中进行编码,如果可能的话,我希望保持代码跨平台.

解决方法

您最好使用使用ICU库的boost.locale. ICU提供了许多语言环境,并且不依赖于您使用的操作系统.要生成std :: locale,您需要编写:
boost::locale::generator gen;
std::locale loc = gen("en_US");

欲获得更多信息:
http://www.boost.org/doc/libs/1_57_0_b1/libs/locale/doc/html/index.html

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读