Проблемы с кодировкой в ​​Linux, а не в Windows - PullRequest
1 голос
/ 22 марта 2010

Я столкнулся с проблемой кодирования, которая поставила меня в тупик на несколько недель, и, похоже, ничего не работает. У меня есть веб-сайт, который отлично работает на моем локальном компьютере, но когда я помещаю файлы jsp в окно Linux для просмотра, символы, которые ранее отображались нормально, теперь отображаются в виде забавных символов.

По некоторым причинам некоторые символы отображаются нормально, но другие символы не будут правильно кодироваться. Весь текст на странице читается из файлов .properties java и выводится на страницу с помощью bean-компонентов.

Я добавил метатег на страницу для установки кодировки, но ничего не сделал. Я также добавил <% @ page contentType = "text / html; charset = UTF-8" pageEncoding = "UTF-8"%>, но это ничего не сделало в окне linux и фактически заставило ошибки кодирования появляться на моем локальном компьютере с Windows.

Любая помощь будет принята с благодарностью.

Ответы [ 4 ]

1 голос
/ 22 марта 2010

Для правильной работы кодировки символов в Nixes и Nuxes необходимо сыграть вместе:

  • кодировка файловой системы
  • кодировка базы данных (похоже, не применяется)
  • кодировка коннектора базы данных
  • Java-кодирование внутренней строки (UTF-16, если я правильно помню)
  • Выходная кодировка Java
  • Кодировка HTML-страницы

С директивой вашей страницы вы обращались только к последнему пулу. Другими словами, вы указываете браузеру декодировать страницу как UTF-8, но это не то, что вы отправляете.

Взгляните на эту (предположительно, несколько лет) статью , в частности главу 11.

1 голос
/ 22 марта 2010

Убедитесь, что метод загрузки свойств использует кодировку символов, в которую фактически записаны файлы свойств.

Без явной установки этого параметра используется кодировка по умолчанию для файловой системы, а в Windows это ISO-Latin-1, а в некоторых дистрибутивах Linux - UTF-8.

0 голосов
/ 23 марта 2010

Посмотрите на заголовки http, отправленные сервером. Это первое место, где браузер ищет кодировку раньше всего.

0 голосов
/ 23 марта 2010

Также проверьте физические файлы на обеих машинах. Я видел, как несколько клиентов FTP портят файлы во время передачи. Быстрая проверка состоит в том, чтобы выдвинуть ваш файл как html вместо jsp. Вы получите мусор для всех последовательностей <% %>, но другой текст должен отображаться без изменений. Вы также вывели сервер приложений из уравнения. Если текст все еще в стиле фанк, то ваш FTP или WebDAV-клиент пытается «помочь».

...