Вот несколько конфигов моего приложения Spring Boot. Я использую FreeMarker в качестве распознавателя MVC. Это maven config:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<executable>true</executable>
<jvmArguments>-Dfile.encoding=UTF8</jvmArguments>
</configuration>
</plugin>
</plugins>
</build>
Это мой класс конфигурации:
@Configuration
@EnableWebMvc
@RequiredArgsConstructor
public class ApplicationWebMvcConfig extends WebMvcConfigurerAdapter {
private final FreeMarkerViewResolver freemarkerViewResolver;
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/templates/").addResourceLocations("/templates/");
}
@Override
public void configureViewResolvers(ViewResolverRegistry registry) {
registry.freeMarker();
registry.viewResolver(freemarkerViewResolver);
}
@Bean
public FreeMarkerViewResolver freemarkerViewResolver() {
FreeMarkerViewResolver resolver = new FreeMarkerViewResolver();
resolver.setContentType("text/html;charset=utf-8");
resolver.setPrefix("templates/");
resolver.setSuffix(".ftl.html");
return resolver;
}
@Bean
public CharacterEncodingFilter characterEncodingFilter() {
CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter();
characterEncodingFilter.setForceEncoding(true);
characterEncodingFilter.setEncoding("UTF-8");
characterEncodingFilter.setForceRequestEncoding(true);
characterEncodingFilter.setForceRequestEncoding(true);
return characterEncodingFilter;
}
}
Это часть моего application.properties
файла
# FRONTEND
spring.freemarker.enabled=true
spring.freemarker.template-loader-path=classpath:/templates/
spring.freemarker.expose-request-attributes=true
spring.freemarker.content-type=text/html
spring.freemarker.charset=UTF-8
Я также добавил эти строки в мои .ftl
файлы:
<#ftl encoding='UTF-8'>
<head>
<meta http-equiv="Content-Type" content="text/html" charset="UTF-8"/>
...
</head>
Но я все еще получаю кодировку "Windows -1252", поэтому я не вижу русских букв на своих страницах. Как это исправить?