我无法在UTF-8中显示我在messages.properties中收到的消息。
一个例子
<h1 id="logo">Electrónico</h1>
这可行,但是当我尝试使用我的消息来源时
<h1 id="logo" th:text="#{titulo.electronico}">Electrónico</h1>
我得到“Electr nico”而不是Electrónico
这是我的配置
application.properties
spring.messages.encoding=UTF-8
server.tomcat.uri-encoding=UTF-8
spring.http.encoding.charset=UTF-8
spring.thymeleaf.mode=HTML5
spring.thymeleaf.encoding=UTF-8
的pom.xml
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<start-class>demo.Demo</start-class>
<java.version>1.7</java.version>
</properties>
演示课程
@SpringBootApplication
public class Demo {
public static void main(String[] args) {
SpringApplication.run(Demo.class, args);
}
}
ServletInitializer.class
@Configuration
public class ServletInitializer extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Demo.class);
}
@Bean
public ServletRegistrationBean h2servletRegistration() {
ServletRegistrationBean registration = new ServletRegistrationBean(new WebServlet());
registration.addUrlMappings("/console/*");
return registration;
}
@Bean
@Order(Ordered.HIGHEST_PRECEDENCE)
CharacterEncodingFilter characterEncodingFilter() {
CharacterEncodingFilter filter = new CharacterEncodingFilter();
filter.setEncoding("UTF-8");
filter.setForceEncoding(true);
return filter;
}
}
如果您需要有关我的配置的更多信息,我可以编辑它。 感谢。
答案 0 :(得分:21)
要阅读UTF-8
编码中的任何文件,必须先在UTF-8
中创建。
使用一些支持编码切换的编辑器。或者从IDE创建具有属性文件的编码选项的文件。例如。 IDEA:http://blog.jetbrains.com/idea/2013/03/use-the-utf-8-luke-file-encodings-in-intellij-idea/
答案 1 :(得分:9)
就我而言,我忘记了messageSource.setDefaultEncoding("UTF-8")
,请参阅here。
答案 2 :(得分:7)
希望这可以帮助别人。各种code
解决方案在我的情况下不起作用,但编辑器设置确实如此。
如果您正在使用intellij,请转到file encoding
并将全局和项目编码设置为UTF-8,同样适用于default encoding for properties files
并且非常重要 - 请检查Transaparent native-to-ascii conversion
。
如果您使用体面的文本编辑器打开文件,您会注意到某些字符是使用其UTF-8版本编写的,例如
é
->
\ u00E9
在我的情况下,更改没有触发GIT的更改,所以我不得不对文件进行“假”修改,以便进行提交和推送。
答案 3 :(得分:1)