|
|
|
русские буквы в URL и сервлет
|
|||
|---|---|---|---|
|
#18+
Параметры запроса передаются через GET Когда в качестве параметра присутствует слово в символах кириллицы, методом req.getParameter в сервлете получаю строку вопросительных знаков. Как получить параметр в оригинале ? Пробовал в начале goGet ставить req.setChsracterEncoding("Cp1251") , не помогло. При этом при отправке запроса из IE строка в самом браузере (в строке адреса) не трансформируется. В Firefox кириллические символы после отправки запроса приобретают вид %XX , где XX символы от 0 до F . На стороне сервлета ситуация одинакова независимо от браузера. Должно быть, хорошо известная проблема и решение. Благодарю за ответ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2006, 19:17:12 |
|
||
|
русские буквы в URL и сервлет
|
|||
|---|---|---|---|
|
#18+
В параметрах URL (адресной строке браузера) символы кирилицы недопустимы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2006, 19:56:40 |
|
||
|
русские буквы в URL и сервлет
|
|||
|---|---|---|---|
|
#18+
KachalovВ параметрах URL (адресной строке браузера) символы кирилицы недопустимы. Позвольте не согласиться. Ввожу в адресную строку IE запрос http://www.google.com/search?num=50&hl=ru&ie=WIN&q=лопата&lr= и успешно получаю результаты поиска по заданному слову. Строка адреса в IE при этом не трансформируется. В Firefox после открытия страницы слово "лопата" в адресной строке меняется на %EB%EE%EF%E0%F2%E0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2006, 11:55:46 |
|
||
|
русские буквы в URL и сервлет
|
|||
|---|---|---|---|
|
#18+
конечно в IE это будет работать. IE не следует никаким спецификациям. если строку набрать в опере, то она будет преобразована в http://www.google.com/search?num=50&hl=ru&ie=WIN&q=%D0%BB%D0%BE%D0%BF%D0%B0%D1%82%D0%B0&lr= ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2006, 12:05:36 |
|
||
|
русские буквы в URL и сервлет
|
|||
|---|---|---|---|
|
#18+
Ага! А я в адресной строке проводника в винде ввожу слово "диван" и MSNSearch находит мне сайты про диваны. Писание кирилицы в параметрах URL это ошибка в соответствии с протоколом HTTP. Цитата из RFC 1738 : Код: plaintext 1. Используя символы кирилицы в URL Вы нарушаете правила. Иногда как в случае с гугл и микрософт это проходит, все таки там не дураки работают, иногда, как в Вашем случае, нет. Зачем лезть на рожон и сознательно нарушать правила? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2006, 12:20:07 |
|
||
|
русские буквы в URL и сервлет
|
|||
|---|---|---|---|
|
#18+
Всё было бы понятно, если бы при замене русского слова на %EB%EE%EF%E0%F2%E0 в строке URL в сервлет пролезало бы это самое слово. Но там к сожалению всё равно вопросительные знаки. Если же задать англоязычное слово, в сервлет оно поступает без изменений. Почему так ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2006, 13:27:43 |
|
||
|
русские буквы в URL и сервлет
|
|||
|---|---|---|---|
|
#18+
ламиерроНо там к сожалению всё равно вопросительные знаки - какой web-сервер, какой версии? Если Tomcat 5.5.x смотри настройку useBodyEncodingForURI ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2006, 13:44:58 |
|
||
|
русские буквы в URL и сервлет
|
|||
|---|---|---|---|
|
#18+
настройка Tomcat В файл server.xml следует добавить следующие строки: useBodyEncodingForURI="true" URIEncoding="UTF-8" При отсутствии этого параметра все русские символы, приходящие в GET-запросе будут заменяться на символы « ? ». Код: plaintext 1. 2. 3. 4. 5. 6. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2006, 13:52:18 |
|
||
|
русские буквы в URL и сервлет
|
|||
|---|---|---|---|
|
#18+
2fjord достаточно useBodyEncodingForURI="true" и request.setChsracterEncoding("кодировка") ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2006, 14:13:14 |
|
||
|
русские буквы в URL и сервлет
|
|||
|---|---|---|---|
|
#18+
Kachalov , fjord Сделал, перезапустил - пока безрезультатно. Вс равно вопросительные знаки. Обратил внимание на следующую вещь. При запросе к Google, например из Firefox, в строке браузера слово "лопата" трансформируется в %D0%BB%D0%BE%D0%BF%D0%B0%D1%82%D0%B0 (т.е. по 2 байта на символ, очевидно Unicode) При запросе к моему сервису то же слово преобразуется в %EB%EE%EF%E0%F2%E0 (т.е. по 1 байту на символ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2006, 14:17:03 |
|
||
|
русские буквы в URL и сервлет
|
|||
|---|---|---|---|
|
#18+
ламиерро Сделал, перезапустил - пока безрезультатно. Вс равно вопросительные знаки. - разберитесь в какой кодировке "на самом деле" отправляютя данные. Посмотрите в браузере опцию "вид"->"кодировка", что там выбрано? Лучше явно в коде страницы указывать кодировку, а если страница динамическая указать кодировку ответа: response.setContentType("text/html; charset=windows-1251"); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2006, 14:23:11 |
|
||
|
русские буквы в URL и сервлет
|
|||
|---|---|---|---|
|
#18+
Kachalov - разберитесь в какой кодировке "на самом деле" отправляютя данные. Посмотрите в браузере опцию "вид"->"кодировка", что там выбрано? Лучше явно в коде страницы указывать кодировку, а если страница динамическая указать кодировку ответа: response.setContentType("text/html; charset=windows-1251"); Страницы для отправки запроса не существует, это не POST а GET, есть только URL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2006, 14:50:38 |
|
||
|
русские буквы в URL и сервлет
|
|||
|---|---|---|---|
|
#18+
Вроде осилил, прошло. Слово в URL должно кодироваться по 2 байта на символ, т.е. для компоновки правильного запроса сейчас использую такой кривой путь : - в Firefox открываю поиск по этому слову в Google ; при этом набираю слово русскими буквами прямо в строке адреса. - Google выполняет поиск и преобразует адрес в строке браузера в Unicode. - Copy-Paste слова которое было в кириллице из полученного URL в URL моего сервиса , и вставляю полученный URL в строку адреса браузера. И вот только тогда в сервлете получаем русские буквы. Благодарю всех за помощь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2006, 15:01:29 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=687&tid=2147674]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
81ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
| others: | 223ms |
| total: | 404ms |

| 0 / 0 |
