Странная проблема, символ Tomcat Webapp UTF-8 не может отображаться правильно после каждого перезапуска или каждого повторного развертывания - PullRequest
3 голосов
/ 21 декабря 2009

У нас странная проблема с веб-приложением по правильному отображению символов UTF-8, вот факты:

  • Tomcat 6.0.20, работает на Ubuntu 9.04
  • У нас есть следующие советы здесь Get UTF-8 Working
  • Наше веб-приложение способно правильно отображать символы UTF-8

Однако всякий раз, когда наш разработчик повторно развертывает наш модуль веб-приложения или когда мы перезапускаем кота, весь символ UTF-8 отображается как ????? в нашем браузере ..

Мы должны сделать правильный перезапуск Tomcat (дождаться полной остановки Tomcat и снова запустить tomcat), хотя это и раздражает, но и решает проблему.

Кто-нибудь сталкивался с подобной проблемой раньше, спасибо за ваш совет.

Ответы [ 2 ]

12 голосов
/ 22 декабря 2009

Если вы уверены, что содержимое имеет формат UTF-8, это может сработать. Задайте эту строку в файле catalina.sh (например, сразу после огромного начального комментария задолго до их экспорта):

export CATALINA_OPTS="$CATALINA_OPTS -Dfile.encoding=UTF-8"

Кроме того, мы не знаем, используете ли вы данные из базы данных. Проверьте, правильно ли вы вставили его туда.

0 голосов
/ 21 декабря 2009

Таким образом, кодировка страницы JSP сошла с ума. Если вы ознакомились со статьей, которую вы нашли правильным способом, то это косвенно означает, что

<%@page pageEncoding="UTF-8" %>

сломался.

Первым шагом будет проверка конкретного файла JSP в развернутой папке, если он все еще там. Следующим шагом будет проверка того, содержит ли его скомпилированный файл .java в рабочей папке сервера приложений хотя бы следующую строку в начале блока try:

response.setContentType("text/html;charset=UTF-8");

Последним шагом будет проверка полученных заголовков ответа. Это зависит от веб-браузера, как вы можете просматривать их. В стандартной среде Firefox вы можете найти его, щелкнув правой кнопкой мыши страницу> Просмотр информации о странице . Кодировка должна содержать UTF-8. Также в Firefox в верхней строке меню вы можете проверить и поиграть с кодировкой символов с помощью Вид > Кодировка символов .

Как только вы соберете всю эту информацию, вы должны быть в состоянии определить основную причину.

Редактировать: в качестве примечания, Ubuntu поставляется из коробки с багги GNU JDK / JRE. Я настоятельно рекомендую избавиться от него и установить собственный JDK / JRE от Sun. Вы никогда не знаете, я уже видел много других «необъяснимых» проблем / ошибок, решаемых путем замены JDK / JRE на более надежную.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...