Messages.propertiesで取得したメッセージをUTF-8で表示できません。
例
<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;
}
}
私の構成に関する詳細が必要な場合は、編集できます。ありがとう。
UTF-8
エンコーディングでファイルを読み取るには、以前にUTF-8
で作成する必要があります。
エンコーディングの切り替えをサポートするエディタを使用してください。または、IDEからプロパティファイルのエンコーディングオプションを使用してそのファイルを作成します。例IDEA: http://blog.jetbrains.com/idea/2013/03/use-the-utf -8-luke-file-encodings-in-intellij-idea /
私の場合、私はmessageSource.setDefaultEncoding("UTF-8")
を忘れました ここ を参照してください。
うまくいけば、これは他の人を助けるかもしれません。私の場合、さまざまなcode
ソリューションは機能しませんでしたが、エディター設定は機能しました。
Intellijを使用している場合は、_file encoding
_に移動し、グローバルおよびプロジェクトエンコーディングをUTF-8に設定します。これは、_default encoding for properties files
_にも当てはまり、_Transaparent native-to-ascii conversion
_を確認してください。
まともなテキストエディタでファイルを開くと、一部の文字が次のようなUTF-8バージョンで記述されていることがわかります。
é_
->
_\u00E9
私の場合、変更によってGITの変更がトリガーされなかったため、コミットとプッシュを行うためにファイルに「偽の」変更を加える必要がありました。