Skip to content

Instantly share code, notes, and snippets.

@MahefaAbel
Last active February 8, 2022 08:13
Show Gist options
  • Save MahefaAbel/ffe7e1a7d4d7575b2dd239f91cbecb39 to your computer and use it in GitHub Desktop.
Save MahefaAbel/ffe7e1a7d4d7575b2dd239f91cbecb39 to your computer and use it in GitHub Desktop.
Java Charseting
Can We Override the Default Charset?
-Dfile.encoding="UTF-8"
-Dsun.jnu.encoding="UTF-8"
java -Dfile.encoding=utf-8 -jar target\application.jar
@MahefaAbel
Copy link
Author

MahefaAbel commented Feb 8, 2022

In SpringConfig

public class SpringConfig implements WebMvcConfigurer {

    private final ApplicationContext applicationContext;

    @Autowired
    public SpringConfig(ApplicationContext applicationContext) {
        this.applicationContext = applicationContext;
    }

    @Bean
    public SpringResourceTemplateResolver templateResolver() {
        SpringResourceTemplateResolver templateResolver = new SpringResourceTemplateResolver();
        templateResolver.setApplicationContext(applicationContext);
        templateResolver.setPrefix("/WEB-INF/views/");
        templateResolver.setSuffix(".html");
        templateResolver.setCharacterEncoding("UTF-8");
        return templateResolver;
    }

    @Bean
    public SpringTemplateEngine templateEngine() {
        SpringTemplateEngine templateEngine = new SpringTemplateEngine();
        templateEngine.setTemplateResolver(templateResolver());
        templateEngine.setEnableSpringELCompiler(true);
        return templateEngine;
    }

    @Override
    public void configureViewResolvers(ViewResolverRegistry registry) {
        ThymeleafViewResolver resolver = new ThymeleafViewResolver();
        resolver.setTemplateEngine(templateEngine());
        resolver.setCharacterEncoding("UTF-8");
        registry.viewResolver(resolver);
    }
}

In ServletInitializer

public class MySpringMvcDispatcherServletInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
    @Override
    protected Class<?>[] getRootConfigClasses() {
        return null;
    }

    @Override
    protected Class<?>[] getServletConfigClasses() {
        return new Class[]{SpringConfig.class};
    }

    @Override
    protected String[] getServletMappings() {
        return new String[]{"/"};
    }

    @Override
    protected Filter[] getServletFilters() {
        CharacterEncodingFilter filter = new CharacterEncodingFilter();
        filter.setEncoding("UTF-8");
        filter.setForceEncoding(true);
        return new Filter[] { filter };
    }
}

@MahefaAbel
Copy link
Author

application.properties

spring.thymeleaf.enabled=true
spring.thymeleaf.encoding=UTF-8

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment