[英]Spring Boot MVC MessageSource defaultEncoding does not work
简单的Spring Boot Web应用程序。 配置代码段:
@Bean
public MessageSource validationMessageSource() {
ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
messageSource.setBasename("ValidationMessages");
messageSource.setDefaultEncoding("UTF-8");
return messageSource;
}
@Bean
public Validator validator() {
LocalValidatorFactoryBean localValidatorFactoryBean = new LocalValidatorFactoryBean();
localValidatorFactoryBean.setValidationMessageSource(validationMessageSource());
return localValidatorFactoryBean;
}
我将defaultEncoding
设置为UTF-8
。 我有ValidationMessages.properties
文件,该文件以UTF-8编码(我的IntelliJ表示,notepad ++表示),并且包含不同的字符。
我有一个简单的网页(使用Freemarker创建)。 该页面上有一些静态UTF-8文本,并且可以正确显示。
而且,当我提交位于该页面上的表单时,我希望看到正确的错误消息,但是当验证失败(JSR-303 / JSR-349验证)时,我会看到类似обовÑзкове поле. min 2, max 15 ÑимволÑв
обовÑзкове поле. min 2, max 15 ÑимволÑв
这是来自.properties
的消息,但编码错误!
这是页面(简体:没有div,css,js等):
<#import "/spring.ftl" as spring/>
<!DOCTYPE html>
<html lang="en">
<head>
<title>ShareMyCar</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
</head>
<body>
<form action="/registration" method="POST">
<@spring.formInput path="modelObj.name" />
<@spring.showErrors "<br>"/>
<input type="submit" class="btn btn-primary" value="Submit" />
</form>
</body>
</html>
我还需要做些什么才能使其正常工作?
Java自动在本地化包中采用ISO-8859-1编码。
请参阅: https : //docs.oracle.com/javase/7/docs/api/java/util/Properties.html#load(java.io.InputStream)
要使其正常工作,请将文件另存为ISO-8859-1,或使用转义序列,例如\\ u1234。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.