Je ne peux pas afficher en UTF-8 les messages que j'ai reçus dans messages.properties.
Un exemple
<h1 id="logo">Electrónico</h1>
cela fonctionne bien, mais quand j'essaie d'utiliser ma source de message comme ça
<h1 id="logo" th:text="#{titulo.electronico}">Electrónico</h1>
J'obtiens "Electr�nico" au lieu d'Electrónico
C'est ma configuration
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>
classe de démonstration
@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;
}
}
Si vous avez besoin de plus d'informations sur ma configuration, je peux la modifier. Merci.
Pour lire n'importe quel fichier dans le UTF-8
l'encodage doit être créé dans le UTF-8
avant.
Utilisez un éditeur qui prend en charge la commutation d'encodage. Ou créez ce fichier à partir de IDE avec option d'encodage pour les fichiers de propriétés. Par exemple IDEA: http://blog.jetbrains.com/idea/2013/03/use-the-utf -8-luke-file-encodings-in-intellij-idea /
Dans mon cas, j'ai oublié messageSource.setDefaultEncoding("UTF-8")
, voir ici .
Espérons que cela puisse aider les autres. Les diverses solutions code
ne fonctionnaient pas dans mon cas, mais les paramètres d'un éditeur l'ont fait.
Si vous utilisez intellij, accédez à file encoding
et définissez l'encodage global et de projet sur UTF-8, il en va de même pour le default encoding for properties files
et -très important- vérifiez le Transaparent native-to-ascii conversion
.
Si vous ouvrez le fichier avec un éditeur de texte décent, vous remarquerez que certains caractères sont écrits avec leur version UTF-8 tels que
é
->
\u00E9
Dans mon cas, le changement n'a pas déclenché de changement pour GIT, j'ai donc dû apporter une "fausse" modification au fichier afin de faire un commit et un Push.