У меня тоже была такая проблема, и я хочу поблагодарить aditsu за его ответ.
Я использую рестлет поверх сервера Jetty в Ubuntu 12.04 (и 14.04).Приложение рестлета находится за сервером Apache, который функционирует как proxyPass.
Все файлы имеют формат UTF-8.Все HTTP-ответы имеют Content-Type text / html;кодировка = UTF-8.Все файлы содержат
Странно было то, что, когда сервер загружается, и я захожу на сайт, кодировка символов не была UTF-8, поэтому я получил все эти забавные символы.Даже когда все сигналы сообщали серверу и агентам, и все, что находится между этим UTF-8, де-кодирование используется.
Когда я перезапускаю службу вручную после загрузки сервера, все символы в порядке.Поскольку я не мог легко найти ответ и не знал, кто вызвал эту неправильную кодировку, я продолжал перезапускать службу вручную.
В то время моими кандидатами были: Apache, порядок загрузки службы Ubuntu, среда перезапуска, файлфактически используемая кодировка, заголовки HTTP, метатеги HTML.Но все было так, как и должно было быть.
Итак, в конце концов, это была Пристани, которую я рассмотрел только сейчас, после повторного рассмотрения этой проблемы.
Я до сих пор не понимаюпочему запуск во время загрузки делает кодировку символов неправильной, а после ручного перезапуска службы - правильной.Добавление дополнительного аргумента JAVA '-Dfile.encoding = UTF-8' заставило все это исчезнуть.Еще раз спасибо aditsu за то, что поделились своим решением !!
Cheers
Редактировать: Установка переменной среды LANG в скрипте запуска также решает проблему.Т.е.
export LANG = en_US.UTF-8
На самом деле, это разница между запуском сервера Jetty во время загрузки (LANG не определен из коробки) и запуском его из оболочки.Итак, два решения для одной и той же проблемы.