Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> вызов request.setCharacterEncoding() в фильтре, и метод GET 
:(
    Опции темы
ochnev
Дата 1.8.2008, 11:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 253
Регистрация: 27.3.2006

Репутация: нет
Всего: нет



Есть форма поиска, которая отсылается методом GET.
В поле вводятся русские символы.
Сервлет, обрабатывающий форму, работает под фильтром.
Фильтр устанавливает кодировку UTF-8, вызывая req.setCharacterEncoding().
Если форму отсылают методом POST, то всё OK. Если метод GET, то параметры запроса передаются в строке запроса, и в результате русские буквы приходят в таком виде:
\u009F\u0082\u0080
и перед каждой "\u" стоят 1-3 буквы, не латиница и не кириллица
(так они видны в отладчике)

Иногда можно отказаться от GET в пользу POST, но если нельзя, то что делать?

PM MAIL   Вверх
alexadr
Дата 1.8.2008, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 112
Регистрация: 25.9.2006

Репутация: нет
Всего: 4



есть в javascript функция encodeURIComponent(), возможно она вам поможет.
PM MAIL   Вверх
Samotnik
Дата 1.8.2008, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 5
Всего: 191



ochnev, да такая проблема у меня была тоже. 
это очень распространенная проблема, и как я  понял это  БАГ  Java  smile . Этот вопрос я тож выносил на форум, но так и не получил ответа. нашел я решение в нете. 
Нужно править  томкат  smile 
файл server.xml и добавить для элемента Connector атpибут useBodyEncodingForURI равный значению “true”

да еще..
программно (с помощью  Java) мне не удалось решить проблему, ни с помощью фильтров, ни с помощью прямого указания кодировки перед отправкой запроса

Это сообщение отредактировал(а) Samotnik - 1.8.2008, 14:00
PM MAIL   Вверх
Samotnik
Дата 1.8.2008, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 5
Всего: 191



ochnev,  в хидере  жсп это  прописываеш ?
Код

<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="utf-8" %>

и в самом сервлете
Код

public class ServletClass extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) 
    throws ServletException, IOException {
        response.setCharacterEncoding("utf-8");
    }
 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) 
    throws ServletException, IOException {
        doPost (request, response);
    }
}

PM MAIL   Вверх
jokodzuma
Дата 1.8.2008, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 20.7.2008

Репутация: нет
Всего: нет



PM MAIL   Вверх
Samotnik
Дата 1.8.2008, 15:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 5
Всего: 191



jokodzuma, мммм    эта статья вам реально помогла решить проблему с русскими символоами в  get  запросе ?  smile 
PM MAIL   Вверх
jokodzuma
Дата 1.8.2008, 19:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 20.7.2008

Репутация: нет
Всего: нет



Цитата(Samotnik @ 1.8.2008,  15:50)
jokodzuma, мммм    эта статья вам реально помогла решить проблему с русскими символоами в  get  запросе ?  smile

да. в диапазоне, который там указан
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0475 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.