Арабские символы появляются как ???после добавления фильтра на страницу JSP - PullRequest
2 голосов
/ 20 сентября 2010

Когда я добавляю Filter к определенному файлу JSP, арабские символы в выводе отображаются как ???, даже если кодировка страницы установлена ​​на UTF-8 с помощью <% @page pageEncoding="UTF-8"%> и <% response.setCharacterEncoding("UTF-8");%>.

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

1 Ответ

5 голосов
/ 20 сентября 2010

Фильтр прямо или косвенно передает ответ и / или получает доступ к Writer или OutputStream из HttpServletResponse, что приводит к невозможности изменения кодировки в JSP. Исправьте код в фильтре соответственно. Фильтр ни в коем случае не должен ничего записывать в тело ответа. Там для JSP (для HTML) или сервлетов (для другого контента).

Кстати, вам не нужно звонить <% response.setCharacterEncoding("UTF-8");%>. <%@page pageEncoding="UTF-8"%> уже неявно делает это.

...