Получение данных маратхи из request.getParameter
По моей просьбе Queryparameter="आकुर्डी"
, Когда я пытаюсь следовать
String strstring = request.getParameter("Queryparameter");
это дает "à¤à¤à¥à¤°à¥à¤¡à¥"
пока я хочу строку "आकुर्डी"
,
Как получить его? В чем здесь проблема?
1 ответ
Эта проблема вызвана тем, что вы использовали другую кодировку символов для разбора параметров запроса, чем клиент, используемый для построения параметров запроса. Для лучшей совместимости со всеми персонажами, известными в мире людей, необходимо убедиться, что и клиент, и сервер используют UTF-8
кодировка символов во всех слоях.
Если это GET
запрос, то вам нужно настроить servletcontainer/appserver для анализа URI запроса как UTF-8
, Вы не сказали, какой из них вы используете, но если это, например, Tomcat, то вы можете сделать это, установив URIEncoding
атрибуция <Connector>
элемент к UTF-8
:
<Connector (...) URIEncoding="UTF-8" />
Если вы используете другой servletcontainer/appserver, то вам нужно ознакомиться с его документацией о том, как настроить кодировку символов URI запроса.
Если это POST
запрос, то вам нужно поручить HttpServletRequest
проанализировать тело запроса как UTF-8
с помощью HttpServletRequest#setCharacterEncoding()
перед сбором параметров запроса.
request.setCharacterEncoding("UTF-8");
Для получения дополнительной справочной информации и большего количества решений в других областях вам также необходимо принять во внимание (например, генерацию ответа в виде UTF-8
и инструктируя клиента использовать UTF-8
, так что вы можете сохранить все это единообразно), вы можете найти этот блог полезным: Юникод - Как правильно настроить символы?