Не работает кодировка UTF-8 hibernate + tomcat + Spring MVC + Freemarker

130
31 августа 2019, 22:50

Всем привет, имею дело с небольшим приложением на Spring MVC, проблема следующая: при отправке данных в БД вместо русских символов там такая абракадабра

ÐÑекÑаÑна книга.

Я считаю, что проблема в кодировке, но, как мне кажется, она настроена правильно.

Объект старта приложения:

       @Configuration
       @ComponentScan(basePackages = {"controller","DAO","service"})
       @EnableTransactionManagement
 public class WebConfig {
 @Bean
public LocalSessionFactoryBean localSessionFactoryBean(){
LocalSessionFactoryBean localSessionFactoryBean = new LocalSessionFactoryBean();
localSessionFactoryBean.setDataSource(dataSource());
localSessionFactoryBean.setPackagesToScan("entity");
localSessionFactoryBean.setHibernateProperties(hibernateProperties());
return localSessionFactoryBean;
}
 @Bean
public org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor postProcessor(){
return new org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor();
}
@Autowired
@Bean
public HibernateTransactionManager platformTransactionManager(SessionFactory sessionFactory){
HibernateTransactionManager platformTransactionManager = new HibernateTransactionManager();
platformTransactionManager.setSessionFactory(sessionFactory);
return platformTransactionManager;
}
@Bean
public DataSource dataSource(){
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUsername("root");
dataSource.setPassword("root");
dataSource.setUrl("jdbc:mysql://localhost:3306/shop?useUnicode=yes&characterEncoding=UTF-8&useLegacyDatetimeCode=false&serverTimezone=UTC");
return dataSource;
}
private Properties hibernateProperties() {
return new Properties() {
  {
    setProperty("hibernate.dialect", "org.hibernate.dialect.MySQL8Dialect");
    put("hibernate.id.new_generator_mappings","false");
    put("hbm2ddl.auto","update");
  }
 };
}
}

Настройки БД: [

В чем может быть дело, использую Freemarker, там стоит

<meta charset="UTF-8">

Заранее спасибо.

Answer 1

Вообщем, решил проблему добавлением фильтра в web.xml файл. Надеюсь, кому то помогу.

       <filter>
    <filter-name>encodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
    <init-param>
        <param-name>forceEncoding</param-name>
        <param-value>true</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>encodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
READ ALSO
Оптимизировать CSS код

Оптимизировать CSS код

Есть более 2000 тысстрок такого кода:

104
Стилизация reCaptcha. Возможно ли?

Стилизация reCaptcha. Возможно ли?

Есть WPВывожу формы с помощью Contact Form7

126
Как сделать такой элемент в верстке?

Как сделать такой элемент в верстке?

Как сделать такой элемент статичнымНо в будущем, чтобы через стили я мог менять длину у синей полоски

105
Webpack 4 - Как импортировать файлы, если их много?

Webpack 4 - Как импортировать файлы, если их много?

Коллеги, есть такая простая Webpack сборка

103