Получение данных маратхи из 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, так что вы можете сохранить все это единообразно), вы можете найти этот блог полезным: Юникод - Как правильно настроить символы?

Другие вопросы по тегам