Stuts2 Tiles Tomcat подозревается в изменении UTF-8 на?
-
09-06-2019 - |
Вопрос
У меня возникли некоторые проблемы с интернационализацией:
Мои строковые поля UTF-8 отображаются в браузере как ????после возвращения из базы данных.
После извлечения из базы данных с помощью Hibernate поля String отображаются правильно при проверке с помощью отладчика eclipse.
Однако Struts2/Tiles отображает эти строки как ????в HTML-коде, отправленном в браузер.
Директива charset присутствует в заголовке HTML:
Возможно, мне нужно добавить что-то в мои конфигурации struts2 или tiles?
Решение
Вы можете попробовать что-то вроде этого.
Это взято со страницы Сана на Наборы символов и кодировки.Я думаю, что это должна быть самая первая строка в вашем jsp.
<%@ page contentType="text/html; charset=UTF-8" %>
Другие советы
О боже, получается, что причина была в общем WTF?
все наши ответы на плитки обслуживались собственным сервлетом, который игнорировал
<%@ page contentType="text/html; charset=UTF-8" %>
директива (и черт знает что еще).
TilesDispatchExtensionServlet
:чертова архитектура, космонавты, я грозю вам кулаком.
Попробуйте установить атрибут lang в элементе <html/>.
HTML-пример:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="ja">
Пример XHTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja">
Вам нужно использовать фильтр.Видеть: