Как разобраться с записью кириллицы в БД?

В таблице из БД могу сохранить/редактировать данные, если ввожу русский текст, то сохраняет в таком виде:
Ð²Ð¾Ñ Ñак ÑоÑÑанÑеÑÑÑ ÑÑÑÑкий ÑекÑÑ
БД - MySQL, драйвер connector/J-driver 5.1.27, в самой базе у полей кодировка utf-8 страницы jsf также на этой кодировке.

Что куда дописать, думаю найдутся те, у кого были похожие проблемы.
  • Вопрос задан
  • 3379 просмотров
Пригласить эксперта
Ответы на вопрос 3
foxmuldercp
@foxmuldercp
Системный администратор, программист, фотограф
первое - кодировка веб страницы.
второе - collation у самой базы.
третье - кодировка таки да, поля.
Ответ написан
@DiLighteR
страницы jsf также на этой кодировке

скорее всего вы имеете ввиду, что в начале xhtml страницы есть что-то типа такого
<?xml version='1.0' encoding='UTF-8' ?>
это просто говорит xml парсеру, в какой кодировке записана сама исходная страница, и не имеет отношения к тому, в какой кодировке передаются введенные данные на сервер.

попробуйте фильтр, который для всех запросов принудительно устанавливает кодировку utf-8
@WebFilter("/*")
public class CharacterEncodingFilter implements Filter {

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException {
        request.setCharacterEncoding("UTF-8");
        chain.doFilter(request, response);
    }

    // ...
}


если не поможет, нужно настроить кодировку запросов на вашем сервере приложений.
Конкретно мне в случае с glassfish помог вот такой glassfish-web.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE glassfish-web-app PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Servlet 3.0//EN" "http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd">
<glassfish-web-app error-url="">
  <class-loader delegate="true"/>
  <jsp-config>
    <property name="keepgenerated" value="true"/>
  </jsp-config>
  <glassfish-web-app>
  <parameter-encoding default-charset="UTF-8" />
</glassfish-web-app>
</glassfish-web-app>
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы