2015-07-30 3 views
-1

Иметь URL с не-латинскими символами в параметрах запроса: http://localhost:9080/proxy-octopus/oct2c/!adm_v2_Common.DialogForm?func=FiltrProc&title=Поиск процедур по набору атрибутовWebsphere Строка запроса проблема кодирования

Changed кодирования URL-адрес для WAS для Windows-1251: client.encoding.override установлены в Windows-1251

запросов параметры получены хорошо. Следующий код возвращает действительное значение: «Поиск процедур по набору атрибутов».

request.getParameter("title") 

Но для следующего кода, который я получил действительное значение: "Func = FiltrProc & название = Ïîèñê% 20ïðîöåäóð% 20ïî% 20íàáîðó% 20àòðèáóòîâ".

request.getQueryString() 

Также я могу получить реальное значение ("Func = FiltrProc & название = Поиск% 20процедур% 20по% 20набору% 20атрибутов") по следующему пути:

new String(request.getQueryString().getBytes(Charsets.ISO_8859_1),"Windows-1251") 

Что я должен сделать, чтобы получить действительный значение на request.getQueryString()?

ответ

0

Для интернационализации более надежно использовать кодировку UTF-8.

Итак, попробуйте изменить client.encoding.override на UTF-8.

Кроме того, проверьте, правильно ли указан параметр заголовка в URL-адресе.

+0

Невозможно изменить на UTF-8, поскольку у меня есть устаревшее приложение с кодировкой Windows-1251. Если символ неправильно закодирован, я бы не смог получить свойства методом request.getParameter («title»), не так ли? – Gregory

+0

Вы имеете в виду исходный код в 1251? Можете ли вы преобразовать весь исходный код в UTF-8 и использовать UTF-8 в WAS? Seams request.getQueryString() использует кодировку по умолчанию. –

+0

Это проект ** legacy **, поэтому я не могу изменить его кодировку. – Gregory

Смежные вопросы