проблема с кодировкой при записи в базу mysql на heroku (java, spring)
Залил на хероку приложение, русские символы в базу записываются как "????".
Не помогло:
Добавление к конфигурации
@Configuration
@EnableWebMvcSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
CharacterEncodingFilter filter = new CharacterEncodingFilter();
filter.setEncoding("UTF-8");
filter.setForceEncoding(true);
http.addFilterBefore(filter,CsrfFilter.class);
//rest of your code
}
//rest of your code
}
Так же не помогло добавление
public class MessageSecurityWebApplicationInitializer extends AbstractSecurityWebApplicationInitializer {
@Override
protected void beforeSpringSecurityFilterChain(ServletContext servletContext) {
FilterRegistration.Dynamic characterEncodingFilter = servletContext.addFilter("encodingFilter", new CharacterEncodingFilter());
characterEncodingFilter.setInitParameter("encoding", "UTF-8");
characterEncodingFilter.setInitParameter("forceEncoding", "true");
characterEncodingFilter.addMappingForUrlPatterns(null, false, "/*");
}
}
Так же не помогло добавление к ссылке базы ?useUnicode=true&characterEncoding=UTF-8
По статье http://hosting-vds-vps.ru/hosting/mysql.html после команды SHOW VARIABLES LIKE 'char%'; все было utf8, кроме character_set_server, он был как раз latin1. Может в этом проблема? Но командой изменить эту переменную не получается, отказано в доступе.
При локальном запуске программы с использованием этой же базы все работает нормально. База ClearDB MySQL. Весь интернет уже перерыл, не могу найти решение.
UPD: Не помогло Spring Boot, FreeMarker и кодировка Windows-1252