Вопрос

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

Мои строковые поля 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"> 

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top