| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > Ajax и передача кириллицы в URL |
| Автор: check 10.11.2008, 17:45 | ||||||||||||
Я уже задавал этот вопрос в разделе JavaScript: http://forum.vingrad.ru/forum/topic-235505/anchor-entry1693723/0.html
Но до сих пор не ясно, где источник проблемы, на клиенте или на сервере. Я написал фильтр для перекодировки русских символов из ISO-8859-1 в UTF-8. Перекодирую так
Кроме того в фильтр кириллица приходит уже в виде "óëèöà". Значит все же уже с клиента приходит не в той кодировке? |
| Автор: necromancer 10.11.2008, 17:50 |
| по сути JS все равно что передавать, кириллицу не кириллицу. он использует транспорт браузера, а уж он в свою очередь кодирует символовы в ISO.... известная давняя проблема: new String(param1.getBytes("ISO-8859-1"),"UTF-8") - должно помогать в большинстве случаев. Так же не плохо было бы выставлять у Request charset перед любым обращением за переменными. |
| Автор: Samotnik 10.11.2008, 18:46 |
| check, проблема в связке Java + POST запрос + русские буквы я уже отвечал по этому поводу. Ищи по форуму (Я щас тоже поищу)) кто быстрее Добавлено через 6 минут и 4 секунды http://black-zorro.com/mediawiki/Java_ru_1 вот решение проблемы |
| Автор: check 10.11.2008, 20:02 | ||
Первой строчкой фильтра устанавливаю UTF-8: request.setCharacterEncoding("UTF-8")
Пришедший в реквесте текст и он же после попытки перекодировать его из ISO-8859-1 в UTF-8 выглядит по-другому. Что это значит, пока не понял. |
| Автор: Samotnik 10.11.2008, 20:06 |
| check, фильтр бесполезно ставить ))) Это БАГ java |
| Автор: MisterCleric 11.11.2008, 10:03 | ||||
| Привет. Ребята, не знаю что и как у вас там не настраивается, у меня под JBOSS все работает ок. в web.xml поставил такой фильтр:
обратите внимание, что он применяеться только для отправленных форм на каждой своей jsp ставлю такую дерективу:
и все отлично постится. В jboss-tomcat server.xml ничего не менял. может сам jboss где-то что переопределяет, но я явно вижу, что отправленные мной запросы закодированы в UTF-8 |
| Автор: check 11.11.2008, 10:44 | ||||||
| Проблема именно с передачей русских символов в урле, всё равно каким методом, get или post. Я сталкивался с таким прежде, когда просто передавал русский текст в jsp Get-параметрами. Тогда я просто перекодировал нужный параметр вот так
Сейчас это не помогает.
и получить русский текст в нормальном виде. Если это получится, то будет по крайней мере ясно, что дело в Томкате. |
| Автор: MisterCleric 11.11.2008, 11:05 | ||
| Насчет томкат или не томкат. к сожалению некогда писать вся-разна тесты. Но приведу пример: В моем приложении есть такая серъезная часть, как отчеты. Данный механизм реализует FastReport. Он принимает параметры урлом на своей сервер по http в кодировке UTF-8. Я из Java вызываю URLConnection на этот сервер отчетов а параметры добавляю в этот урл так:
т.е. насильно говорю, что данная строка будет в UTF-8. Идею сделать так подчерпнул из HTTP Heders, которые формирует броузер перед отправкой запроса Добавлено через 1 минуту и 19 секунд to Moderators почему написал мой код как Javascript?... странновато |
| Автор: check 12.11.2008, 12:11 | ||
У меня URL формируется в JS, там нельзя принудительно установить кодировку.
|