복붙노트

[SPRING] utym8 charset과 Thymeleaf

SPRING

utym8 charset과 Thymeleaf

Thymeleaf와 함께 Spring을 사용할 때 모든 키릴 문자는 ?????로 표시됩니다. 페이지에.

사용

@RequestMapping (value = "/ login", method = RequestMethod.GET, produce = "text / html; charset = utf-8")

https://stackoverflow.com/a/11866822/1479414 여기에 제안 된대로 https://stackoverflow.com/a/12023816/1479414는 도움이되지 않습니다.

이 문제를 해결하는 방법?

해결법

  1. ==============================

    1.대답은 다음에서 찾을 수 있습니다.

    대답은 다음에서 찾을 수 있습니다.

    속성 characterEncoding은 templateResolver 및 ThymeleafViewResolver에 명시 적으로 설정되어야합니다.

    <bean id="templateResolver" class="org.thymeleaf.templateresolver.ServletContextTemplateResolver">
        ...
        <property name="characterEncoding" value="UTF-8"/>
        ...
    </bean>
    
    <bean class="org.thymeleaf.spring4.view.ThymeleafViewResolver">
        ...
        <property name="characterEncoding" value="UTF-8"/>
        ...
    </bean>
    
  2. ==============================

    2.나를 위해 일해. 자바 설정

    나를 위해 일해. 자바 설정

    @Configuration
    @EnableWebMvc
    @ComponentScan(basePackages = "com.projectName.controller")
    public class MVCConfig implements WebMvcConfigurer, ApplicationContextAware {
    
        @Autowired
        private ApplicationContext applicationContext;
    
        @Override
        public void setApplicationContext(ApplicationContext applicationContext) throws 
             BeansException {
            this.applicationContext = applicationContext;
        }
    
        @Bean
        public ViewResolver viewResolver(){
            ThymeleafViewResolver thymeleafViewResolver = new ThymeleafViewResolver();
            thymeleafViewResolver.setTemplateEngine(templateEngine());
            thymeleafViewResolver.setCharacterEncoding("UTF-8");
           return thymeleafViewResolver;
        }
    
        @Bean
        public TemplateEngine templateEngine(){
           SpringTemplateEngine springTemplateEngine = new SpringTemplateEngine();
           springTemplateEngine.setEnableSpringELCompiler(true);
           springTemplateEngine.setTemplateResolver(templateResolver());
           return springTemplateEngine;
       }
    
       @Bean
       public ITemplateResolver templateResolver(){
           SpringResourceTemplateResolver springResourceTemplateResolver = new 
                            SpringResourceTemplateResolver();
           springResourceTemplateResolver.setApplicationContext(applicationContext);
           springResourceTemplateResolver.setPrefix("/WEB-INF/views/");
           springResourceTemplateResolver.setTemplateMode(TemplateMode.HTML);
           springResourceTemplateResolver.setSuffix(".html");
           springResourceTemplateResolver.setCharacterEncoding("UTF-8");
           return springResourceTemplateResolver;
      }
    
       @Override
       public void addResourceHandlers(ResourceHandlerRegistry registry) {
          registry
                .addResourceHandler("/resources/**")
                .addResourceLocations("/resources/");
       }
    }
    
  3. ==============================

    3.나는 thymeleaf html 페이지에서 html 요소를 사용하여 텍스트를 사용하고 있다고 생각합니다. th : 텍스트는 일반 텍스트 만 표시하고,

    나는 thymeleaf html 페이지에서 html 요소를 사용하여 텍스트를 사용하고 있다고 생각합니다. th : 텍스트는 일반 텍스트 만 표시하고,

    당신의 thymeleaf html 페이지와 함께 특별한 헌장을 사용하고 싶다면 예를 들어 바꿀 필요가 있습니다.

    또는

    예를 들어

    <div th:utext="${user.name}"> Test! </div> // for your controller variable 
    

    <div th:utext="#{message.username}"> UserName! </div> // for your properties variable 
    

    특수 문자를 thymeleaf html 페이지와 함께 사용하기위한 다른 구성은 없습니다.

    문제를 해결할 수 있기를 바랍니다.

  4. from https://stackoverflow.com/questions/36397203/utf8-charset-with-thymeleaf by cc-by-sa and MIT license