Stuts2 Tiles Tomcat подозревается в изменении UTF-8 на? - PullRequest
1 голос
/ 11 сентября 2008

У меня проблемы с интернационализацией:

Мои строковые поля UTF-8 отображаются в браузере как ???? после возвращения из базы данных.

После извлечения из базы данных с использованием Hibernate поля String отображаются корректно при проверке с использованием отладчика eclipse.

Однако Struts2 / Tiles отображает эти строки как ???? в HTML, отправляемом в браузер.

Директива charset присутствует в заголовке HTML:

Может быть, мне нужно что-то добавить в мои конфигурации struts2 или тайлов?

Ответы [ 4 ]

1 голос
/ 17 сентября 2008

OMG - получается, что причиной был общий WTF?

все наши ответы на тайлы обслуживались доморощенным сервлетом, который игнорировал

<%@ page contentType="text/html; charset=UTF-8" %>

директива (и кто знает, что еще).

TilesDispatchExtensionServlet: кровавые астронавты архитектуры, я трясу тебя кулаком.

0 голосов
/ 22 октября 2008

Вам нужно использовать фильтр. См:

http://wiki.apache.org/tomcat/Tomcat/UTF-8

0 голосов
/ 11 сентября 2008

Вы можете попробовать что-то вроде этого.

Это взято со страницы солнца на Наборы символов и кодировки . Я думаю, что это должна быть самая первая строка в вашем JSP.

<%@ page contentType="text/html; charset=UTF-8" %>
0 голосов
/ 11 сентября 2008

Попробуйте установить атрибут lang для элемента .

Пример 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"> 
...