首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么std :: locale loc("en_US")会抛出异常?

std::locale loc("en_US")会抛出异常的原因是因为在C++标准库中,"en_US"并不是一个有效的本地化名称。std::locale构造函数接受一个本地化名称作为参数,用于指定特定的地区和语言设置。然而,"en_US"并不是一个标准的本地化名称。

本地化名称通常遵循特定的命名规则,以标识特定的地区和语言设置。例如,"en_US"表示英语(English)和美国(United States)。但是,不同的操作系统和编译器可能对本地化名称的支持有所不同。

如果要在C++中使用特定的本地化设置,建议使用标准的本地化名称,例如"en_US.UTF-8"表示使用英语和美国的UTF-8编码。具体的本地化名称可以根据操作系统和编译器的支持进行查询。

关于本地化和国际化的更多信息,可以参考腾讯云的国际化产品介绍页面:腾讯云国际化产品介绍

请注意,以上答案仅供参考,具体的异常原因可能还与代码的其他部分有关,建议在实际开发中进行详细的调试和排查。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【LFS 系列】从零开始 DIY Linux 系统:(七)基本系统配置 - 系统区域设置

本地语言的支持依赖于 /etc/locale.conf,/etc/locale.conf 包含不少于此相关的环境变量。...即便如此,也可能遇到某些程序因为区域设置和它们预置的不同而导致功能异常(可能不会显示任何的错误消息)。如果出现这样的情况,可以通过查看其它的发行版是如何进行设置区域,从而得到启发。...以下示例中,LANG 设置为 en_US.UTF-8,但 LC_CTYPE 设置为 en_US: localectl set-locale LANG="en_US.UTF-8" LC_CTYPE="en_US...“C” (默认)和 “en_US” (推荐美国英语用户使用)这两种区域设置有所不同。 “C” 使用 US-ASCII 7 位字符集,并把设置了最高位的字节作为无效字符。...这就是为什么类似 ls 的命令本地化时会用疑问号代替。

70110

Spring国际化

前言 SpringBoot中校验基本使用 地区解析 测试代码 异常处理 响应结果 Java标准国际化 ResourceBundle Debug Hibernate-validator中使用 WebMvc...echoEntity, String.class); System.out.println("entity.getBody() = " + entity2.getBody()); } } 异常处理...如果不做任何处理;入参校验失败时错误信息不会返回,不便于查看,简单加一个异常处理 @RestControllerAdvice public class GlobalControllerAdvice {...分为language,country,variant(方言) 比如: en_US(方言为空), 那么ResourceBundle是先找en_US的配置,没有则找en的,还是没有找默认的 默认的也就是example.properties...举例 : javax.validation.constraints.Min.message = must be greater than or equal to {value} 这时候在第6步插入的时候判断是否存在

1.1K20

Spring官网阅读(十一)ApplicationContext详细介绍(上)

//与上面的方法类似,只不过在找不到资源中对应的属性名时, //直接抛出NoSuchMessageException异常; String getMessage(String code,...获取指定类型的属性值,找不到返回默认值 T getProperty(String key, Class targetType, T defaultValue); // 获取属性值,找不到抛出异常...${key})到属性值,找不到不解析 String resolvePlaceholders(String text); // 替换文本中的占位符(${key})到属性值,找不到抛出异常...获取指定类型的属性值,找不到返回默认值 T getProperty(String key, Class targetType, T defaultValue); // 获取属性值,找不到抛出异常...${key})到属性值,找不到不解析 String resolvePlaceholders(String text); // 替换文本中的占位符(${key})到属性值,找不到抛出异常

1.3K20

技术分享 | 为什么我的 MySQL 客户端字符集为 latin1

客户端字符集全部为 latin1 ; 而之前使用同样参数模板部署的 MySQL ,客户端字符集却为 utf8 ; 已知 MySQL 版本为 5.7.32 ,服务器操作系统为 Redhat 7 ,那么为什么两次安装的...Server 认为 Client 发送过来的请求是用该参数进行编码的,因此在收到请求后会使用该参数进行解码; ● character_set_connection :Server 内部处理请求字符串时,从...,而原先的为 en_US.UTF-8 好像找到了问题出在哪里,测试环境验证下,果然当服务器字符集设置为 en_US 后,MySQL 客户端字符集变为了 latin1 那么,为什么这样呢,我们看下官方文档上是怎么说的...CentOS 7)的字符集可以参考下面的方式: -- 立即生效,但重启后会丢失 shell> export LANG="en_US.UTF-8" -- 永久生效 shell> vim /etc/locale.conf...LANG="en_US.UTF-8" shell> source /etc/locale.conf 总结 本次字符集与之前不一致的原因是,该批次虚拟机镜像的字符集有点问题,一般来说,Redhat 7

1.4K30

技术分享 | 为什么我的 MySQL 客户端字符集为 latin1

客户端字符集全部为 Latin1 ; 而之前使用同样参数模板部署的 MySQL ,客户端字符集却为 utf8 ; 已知 MySQL 版本为 5.7.32 ,服务器操作系统为 Redhat 7 ,那么为什么两次安装的...character_set_client转为character_set_connection,因此两个参数要一致; character_set_results:Server返回查询结果给Client时,根据...Latin1 [qinguangfei0511-5.png] 那么,为什么这样呢,我们看下官方文档上是怎么说的:https://dev.mysql.com/doc/refman/5.7/en/charset-connection.html...CentOS 7)的字符集可以参考下面的方式: -- 立即生效,但重启后会丢失 shell> export LANG="en_US.UTF-8" -- 永久生效 shell> vim /etc/locale.conf...LANG="en_US.UTF-8" shell> source /etc/locale.conf 总结 本次字符集与之前不一致的原因是,该批次虚拟机镜像的字符集有点问题,一般来说,Redhat 7

1.9K30

学习PHP中国际化地数字格式处理

学习PHP中国际化地数字格式处理 不知道大家有没有了解过,对于数字格式来说,西方国家以三位为一个进位,使用逗号来分隔。比如,12345678,用标准的格式来表示的话就是 12,345,678 。...至于为什么要格式化数字、货币这些内容呢?我们将在文章讲解中逐一说明。 数字标准格式 首先还是看我们开头介绍的标准数字格式。...$locale) { $fmt = new NumberFormatter($locale, NumberFormatter::DECIMAL); echo $locale . ':'...->formatCurrency(1234567.891234567890000, 'RUR'), PHP_EOL; } // en_US:$1,234,567.89 // en_US:RUR 1,234,567.89...fmt->format(1234567.891234567890000), PHP_EOL; // 1,234,568 PERCENT 不多说了,百分比,就是增加了一个百分号,而且不是以标准格式输出的,以空格进行进位分隔

1K20

这篇文章让你搞懂 SpringMVC 国际化!

messages.properties 这个是默认的配置,其他的则是不同语言环境下的配置,en_US 是英语(美国),zh_CN 是中文简体,zh_TW 是中文繁体(文末附录里边有一个完整的语言简称表格...另外我们还配置了一个拦截器,这个拦截器拦截请求中 key 为 lang 的参数(不配置的话是 locale),这个参数则指定了当前的环境信息。 好了,配置完成后,启动项目,访问方式如下: ?...spring.messages.fallback-to-system-locale 属性则略显神奇,网上竟然看不到一个明确的答案,后来翻了一源码才看出端倪。...再来看看它的 setLocale 方法,直接抛出异常,意味着通过请求头处理 Locale 是不允许修改的。...需要注意的是它的 setLocaleContext 方法,直接抛异常出来,也就意味着 Locale 在后期不能被修改。

1K40

Java Spring项目国际化(i18n)详细方法与实例

在许多网站上都可以找到这些代码的完整列表,下面的网址是提供了标准语言代码的信息:http://www.loc.gov/standards/iso639-2/php/English_list.php。...html,部分语言和国家/地区的标准代码如下所示: 语言 简称 简体中文(中国) zh_CN 繁体中文(中国台湾) zh_TW 繁体中文(中国香港) zh_HK 英语(中国香港) en_HK 英语(美国) en_US..."/ 但在该配置下使用抛Cannot change HTTP accept header – use a different locale resolution strategy异常,这是因为spring...对于语言类型的资源文件,需要开发者对文案进行搜集整理,并翻译成相应的语言确定关键字key,目前大多数情况是将这些信息置于.properties文件中,在使用的时候直接访问获取,当然也可置于数据库中,但频繁的文案获取影响服务器性能及产品体验...只不过在找不到资源中对应的属性名时,直接抛出NoSuchMessageException异常; 3)String getMessage(MessageSourceResolvable resolvable

5.1K22

【SpringBoot基础系列】手把手实现国际化支持实例开发

messages,国际化文件名为 messages-xxx.properties,项目结果如 [00.jpg] 对应的信息如简体中文 messages_zh_CN.properties 200=成功 500=內部异常...500=內部異常 name=用戶名 pwd=密碼 说明 注意spring.messages.basename 这个配置的取值为国际化文件的目录 + 文件名前缀,比如上面若少了最后一层的messages,提示取不到配置...当然更推荐的是直接使用已封装好的 @Configuration public class AutoConfig implements WebMvcConfigurer { /** * 这个如果不存在,则会抛异常...interceptorRegistry.addInterceptor(localeChangeInterceptor()); } } 请注意上面的 localResolver, 当我们不注册这个bean的时候,运行则会抛出异常...'en_US'.

43521
领券