Проблема кодировки Glassfish JSF 2.0 - PullRequest
0 голосов
/ 29 октября 2010

Я работаю над проектом, разработанным с использованием интерфейса JSF 2.0 (Mojarra 2.0.3) и развернутым на сервере Glassfish v.3.0.1.Приложение должно принимать кодировку ISO-8859-2 и записывать данные в базу данных MySql.Проблема в том, что данные не в правильной кодировке.Заголовок Http запроса имеет значение атрибута:

content-type: application/x-www-form-urlencoded; charset=UTF-8

Проблема не в ответе, поскольку данные могут отображаться правильно при считывании из базы данных.Кроме того, URL-адрес соединения MySql должен быть правильным, поскольку он настроен для коллапса latin2.Я даже пытался создать пользовательский фильтр , но безрезультатно.

Есть идеи, как мне принять правильную кодировку?

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

1 Ответ

0 голосов
/ 19 апреля 2011

Вы всегда можете форсировать кодировку ISO-8859-2 , создав Фильтр и определив его в web.xml. Как минимум, Фильтр должен иметь:

public class CustomFilter implements Filter {

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
       try {
          if ((request instanceof HttpServletRequest)
              && (response instanceof HttpServletResponse))  {
              request.setCharacterEncoding("ISO-8859-2");
              response.setContentType("text/html; charset=ISO-8859-2")
           }
           chain.doFilter(request, response);
        } catch (Exception e) {
           // Do your logging here
        }
    }
}
...