Как сохранить кодировку UTF-8 в Tomcat с GET-запросом - PullRequest
1 голос
/ 01 марта 2012

Из моего JSP я отправляю запрос GET с параметром jobDetails , который содержит некоторые китайские символы [закодированные с помощью URLEncoder.encode ()]. Теперь в doGET () моего сервлета мне нужно записать данные в файл. Когда я делаю

request.getParameter("jobDetails"); // this one retrieves wrong characters

Существует решение для этой настройки URIEncoding="UTF-8" в

 <Connector port="8009" protocol="AJP/1.3" redirectPort="8443"/>

тег Tomcat, но наш архитектор делает все возможное, чтобы не изменять существующие настройки tomcat. Я попытался установить фильтр для установки characterEncoding () для request внутри doFilter (), как упоминалось в блоге BalusC . Но этот работает только для запросов POST. Есть ли другое решение, кроме изменения настроек Tomcat? Я использую Tomcat 6 и JDK 1.6.

Ответы [ 3 ]

4 голосов
/ 01 марта 2012

Извините, вам придется сказать своему архитектору, что иногда изменение конфигурации является единственным вариантом, и это один из таких случаев. Для поддержки символов UTF-8 в параметрах URL в Tomcat необходимо добавить этот параметр в соединитель.

0 голосов
/ 01 мая 2012

Если спорить с архитектором не звучит весело (и это не так), анализ URLEncodedUtils должен делать то, что вам нужно.нужно получить необработанную строку запроса для передачи этому методу, но это не должно быть слишком сложным.Поскольку он закодирован по URL, вам не нужно беспокоиться о кодировке, поскольку все символы, не входящие в ASCII, будут экранированы.

0 голосов
/ 05 марта 2012

Я как-то нашел способ ... Я импортировал org.springframework.web.bind.ServletRequestUtils класс из org.springframework.web-3.0.0.RELEASE.jar и использовал следующее для анализа параметра 'jobDetails' from 'Объект запроса:

String jobDetails = new String((ServletRequestUtils.getStringParameter(request, "jobDetails")).getBytes("ISO-8859-1"), "UTF-8");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...