Сервлет request.getParameters помощь не английских символов! - PullRequest
2 голосов
/ 14 сентября 2009

Мне отчаянно нужна помощь.

У меня есть сервлет Java, доступ к которому осуществляется через HTTP Get URL с восемью параметрами. Проблема в том, что параметры не являются эксклюзивными для английского языка. В этих параметрах может быть любой другой язык, например, иврит.

Теперь, когда я отправляю данные - либо из класса, который должен отправлять запрос Get, либо просто из адресной строки браузера, запрос, который я вижу в отладке (Netbeans), содержит бессмысленные символы и сами параметры request.getParameter есть ???? вопросительные знаки.

Как или где бы мне решить эту проблему?

Ответы [ 3 ]

0 голосов
/ 14 сентября 2009

Я подозреваю, что ваш сервер находится в режиме UTF-8, но ваш URL закодирован как Latin-1. Какие знаки вопроса вы получаете, "?" или " "? Это позволит пролить свет на то, кто делает обращение.

Вам нужно изменить свой соединитель на Latin-1, добавив атрибут URIEncoding = "ISO-8859-1", или вы можете перекодировать URL в UTF-8.

Если URL-адрес закодирован браузером, вы находитесь в сети. Нет никакого решения, потому что это могло пойти любым путем в зависимости от браузеров. Смотри мой вопрос,

Обработка кодировки символов в URI на Tomcat

0 голосов
/ 01 июля 2018

В вашем сервлете до request.getParameter("parameter-name") установите кодировку символов вашего запроса на "UTF-8", например, так:

request.setCharacterEncoding("UTF-8");
String word = request.getParameter("parameter-name");

Подробнее см. Tomcat о проблемах кодировки символов .

0 голосов
/ 14 сентября 2009

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

Tomcat использует ISO-8859-1 в качестве символьного декодера по умолчанию для параметров URL, независимо от кодировки страницы, содержащей URL. Это можно изменить с помощью атрибута «URIEncoding» в его конфигурации Connector . Другие серверы приложений могут иметь аналогичные настройки.

Если сервер ожидает параметры в кодировке UTF-8, отправляющая их страница должна быть также закодирована в формате UTF-8.

В этой статье рассматриваются многие проблемы, с которыми обычно сталкиваются при работе с JSP.

...