Кодировка 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 не был настроен для правильной кодировки, поэтому записи в базе данных выглядели очень похоже на зарегистрированные свойства. Я не осознавал, что это была комбинация двух проблем.