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"); 欲获得更多信息: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |