SpringBoot-UTF-8 не работает в сообщениях.свойства
какие проблемы?
Я не могу отображать в UTF-8 сообщения, которые я получил в сообщениях.свойства.
пример
<h1 id="logo">Electrónico</h1>
это работает нормально, но когда я пытаюсь использовать мой источник сообщений, как это
<h1 id="logo" th:text="#{titulo.electronico}">Electrónico</h1>
я получаю "Electr�nico" вместо Electrónico
это мой конфигурация
приложение.свойства
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
пом.в 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.класс!--8-->
@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;
}
}
Если вам нужна дополнительная информация о моей конфигурации, я могу отредактировать его. Спасибо.
3 ответов
для чтения любого файла в UTF-8
кодировка должна быть создана в UTF-8
раньше.
используйте некоторый редактор, который поддерживает переключение кодирования. Или создайте этот файл из IDE с опцией кодирования для файлов свойств. Например. Идея: http://blog.jetbrains.com/idea/2013/03/use-the-utf-8-luke-file-encodings-in-intellij-idea/
в моем случае я забыл messageSource.setDefaultEncoding("UTF-8")
см. http://forum.spring.io/forum/spring-projects/web/42668-solution-for-utf-8-encoding-problem-inside-property-files
надеюсь, это может помочь другим. Различные code
решения не работали в моем случае, но настройки редактора сделали.
если вы используете intellij перейдите в file encoding
и установите кодировку global и project в UTF-8, то же самое касается default encoding for properties files
и -очень важно - проверить Transaparent native-to-ascii conversion
.
если вы откроете файл с приличным текстовым редактором, вы заметите, что некоторые символы написаны с их версией UTF-8, такой как
é
->
\u00E9
в моем случае изменение не вызвало изменения для GIT, поэтому мне пришлось сделать "поддельную" модификацию файла, чтобы сделать фиксацию и нажать.