![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
garbuz |
|
||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 677 Регистрация: 22.1.2008 Репутация: 8 Всего: 11 |
Знаю, сейчас будут пинать ногами, ибо тем про кодировки аж 2 страницы форума. Но вот в таком-то изобилии как раз и сложнее разобраться. Скажу честно, смотрел не все, но везде где смотрел ответа не нашел.
Ситуация такая: Есть jsp-страница (utf-8), у которой есть текстовое поле для ввода. Ввожу туда букву(русскую), сразу же делаю через javascript алерт с этой буквой. Все нормально. Далее через ajax (GET'ом) передаю эту букву на сервер. В сервлете через request получаю эту букву, только там уже не русская буква, а какая-то загагулина. Так вот. Как получить нормальную букву? Пробовал несколько способов. 1) в самом начале писал
2) Написал фильтр.
3) Встретил еще такой вариант
Так вот ничто не помогло, все равно загагулина получается. Кстати, потом появится необходимость тянуть нек. данные из базы, данные в базе находятся в 1251. Проблемы будут если необходимый символ в utf-8? Может лучше на JSP странице и в фильтре (если бы он работал ![]() Короче вот такая вот проблема. ![]() |
||||||||
|
|||||||||
tux |
|
|||
![]() Летатель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1853 Регистрация: 10.2.2005 Где: msk.ru Репутация: 74 Всего: 132 |
По пунктам.
1. В принципе неправильно. Кодировка запроса должна быть выставлена до первого обращения к запросу. Нет гарантии, что какой-либо фильтр не поработал с запросом до выполнения сервлета. 2. Маппинг этого фильтра стоит первым в списке маппингов в web.xml? Если нет, поставь на первое место. 3. Забудь про такие способы получения кириллических символов. Java и серверы приложений умеют работать с кодировками и без таких извращений. Установка кодировки запроса сработает только для метода POST. Если у тебя метод GET, скорее всего придется конфигурировать веь-контейнер. Все денные внутри JVM хранятся в UNICODE, не важно какая кодировка у базы или на HTTP-странице. При выводе информации наружу или получении данных символы перекодируются, то же самое произойдет и в том случае, когда будешь получать данные из базы - произойдет перевод из 1251 в UNICODE. При выводе на страницу - обратное преобразование. |
|||
|
||||
garbuz |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 677 Регистрация: 22.1.2008 Репутация: 8 Всего: 11 |
Тогда что где ее выставлять чтобы к запросу никто не успел обратиться? В самом начале методов doGet\doPost?
Стоит первым.
Понял. Забыл. Самому как-то не понравилось.
Передавал действительно через GET, попробовал через POST, что-то не получается пока. Что можете сказать про encodeURIComponent? |
||||||
|
|||||||
garbuz |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 677 Регистрация: 22.1.2008 Репутация: 8 Всего: 11 |
Проблему решил следующим образом, отправка запроса через POST + Header'ы, все в utf-8
на стороне сервера соответственно
Все, всем спаcибо ![]() |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |