spring - 설정 - thymeleaf message properties




SpringBoot-UTF-8은 messages.properties에서 작동하지 않습니다. (2)

내 경우에는 messageSource.setDefaultEncoding("UTF-8") 잊어 버렸습니다. http://forum.spring.io/forum/spring-projects/web/42668-solution-for-utf-8-encoding-problem-inside-property-files 참조 http://forum.spring.io/forum/spring-projects/web/42668-solution-for-utf-8-encoding-problem-inside-property-files

뭐가 문제 야?

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;
    }
}

구성에 대한 추가 정보가 필요하면 편집 할 수 있습니다. 감사.


바라기를 이것은 다른 사람들을 도울지도 모른다. 필자의 경우 다양한 code 솔루션이 작동하지 않았지만 편집기 설정이 적용되었습니다.

intellij를 사용하여 file encoding 이동하고 전역 및 프로젝트 인코딩을 UTF-8로 default encoding for properties filesdefault encoding for properties files 하며 매우 중요한 - Transaparent native-to-ascii conversion 확인하십시오.

알맞은 텍스트 편집기로 파일을 열면 UTF-8 버전과 같은 일부 문자가

é -> \ u00E9

필자의 경우 변경으로 인해 GIT가 변경되지 않았으므로 커밋과 푸시를 수행하기 위해 파일을 "가짜"로 수정해야했습니다.







thymeleaf