Проблема загрузки файла сервера Tomcat с кодировкой - PullRequest
1 голос
/ 01 сентября 2010

Я отправляю ответ, используя следующий код:

response.setHeader("Content-Encoding","UTF-8");
response.setContentType("text/plain charset=UTF-8");

PrintWriter outWriter = response.getWriter();
String returnString = new String(dataController.translateFile(documentBuffer).getBytes(), "UTF-8");
outWriter.print(returnString);

Когда я запускаю свое веб-приложение с использованием tomcat 6.0.29 на Eclipse, полученный txt-файл дает мне txt-файл с кодировкой utf-8 (я вижу много арабских или китайских символов без проблем), однако после развертывания В WAR-файле проекта результирующий txt-файл заполняется вопросительными знаками вместо китайских или арабских символов.

Есть идеи, в чем может быть проблема?

Также я добавил URIEncoding="UTF-8" на каждый тег Connector в файле server.xml из CONF / Tomcat. Тот же кот Eclipse использует, но безрезультатно.

Заранее спасибо!

Ответы [ 3 ]

4 голосов
/ 01 сентября 2010
response.setHeader("Content-Encoding","UTF-8");

Это излишне, когда установлен тип контента.

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

Это на самом деле неправильно. Точка с запятой отсутствует до charset.

Также я добавил URIEncoding = "UTF-8" на каждый тег Connector в файле server.xml из CONF / Tomcat.

Это влияет только на параметры запроса GET.


Вам нужно следующее:

response.setCharacterEncoding("UTF-8"); // Otherwise platform default encoding will be used to write the characters.
response.setContentType("text/plain; charset=UTF-8");

Звоните по этому номеру до , звоните response.getWriter() или getOutputStream().

Смотри также:

1 голос
/ 11 декабря 2013

Icarin вы упомянули:

Эта переменная была: JAVA_OPTS со значением: -Dfile.encoding = UTF-8

Это внутри / conf / server.xml?

Добрый день, люди!

1 голос
/ 01 сентября 2010

Я нашел ответ, хотя у меня были некоторые ошибки и какой-то ненужный код, который был отмечен BalusC , решением было создать переменную окружения в Windows (или на уровне apache, я думаю, ), затем перезапустите сервер.

Эта переменная была: JAVA_OPTS со значением: -Dfile.encoding = UTF-8

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