Кодировка JSF ISO-8859-2

У меня проблема с настройкой правильной кодировки на страницах JSF. Я использую MySql db с латиницей 2 (кодировка ISO-8859-2) и латиницей сортировки latin2_croatian_ci. Но у меня есть проблемы с установкой значений для поддержки свойств управляемого компонента.

Директива страницы в верхней части моей страницы:

<%@ page language="java" pageEncoding="ISO-8859-2" contentType="text/html; charset=ISO-8859-2" %>

В голову я включил:

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-2">

И мой тег формы:

<h:form id="entityDetails" acceptcharset="ISO-8859-2">

Я создал и зарегистрировал фильтр в файле web.xml со следующей реализацией метода doFilter:

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
    request.setCharacterEncoding("ISO-8859-2");
    response.setCharacterEncoding("ISO-8859-2");
    chain.doFilter(request, response);
}

Но, т.е. когда я устанавливаю свойство управляемого компонента через inputText, все специальные символы (Unicode) заменяются на '?' персонаж.

У меня действительно нет никаких других идей, как установить кодировку на страницы, чтобы работать хорошо. Какие-либо предложения?

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

1 ответ

Решение

Регистрация, которую я делал, вводила в заблуждение. Оказалось, что stdout заменил специальные символы на '?' персонаж. Но символы, которые были записаны в БД, также были заменены на "?" знак. Другая часть проблемы заключалась в том, что JConnector не был настроен для правильной кодировки, поэтому записи в базе данных выглядели очень похоже на зарегистрированные свойства. Я не осознавал, что это была комбинация двух проблем.

Другие вопросы по тегам