powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / кодировка HTTP Request'а
26 сообщений из 26, показаны все 2 страниц
кодировка HTTP Request'а
    #33677059
expp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть HTML форма POST. там вводим текст, жмем submit. в какой кодировке стервлет получит запрос? как её поменять? как логгить HTTP запросы tomcat'а ?
...
Рейтинг: 0 / 0
кодировка HTTP Request'а
    #33677716
коты
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
браузер передаст данные ровно в той кодировке, в которой отображена страница

если веб-приложение косячит с кодировкой, воспользуйся

jakarta-tomcat-5.0.28-src\jakarta-servletapi-5\jsr152\examples\WEB-INF\classes\filters\SetCharacterEncodingFilter.java
(из сорцов томкета)

чтобы логгить запросы можно воспрользоваться фильтром,

jakarta-tomcat-5.0.28-src\jakarta-servletapi-5\jsr152\examples\WEB-INF\classes\filters\RequestDumperFilter.java

или "вентилем"

jakarta-tomcat-5.0.28-src\jakarta-tomcat-catalina\catalina\src\share\org\apache\catalina\valves\RequestDumperValve.java

в разных случаях одно из решений удобнее.

для более тонкой отладки иногда удобно пользоваться HttpServletRequestWrapper
...
Рейтинг: 0 / 0
кодировка HTTP Request'а
    #33677866
KRED
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А в какой кодировке браузер посылает запрос если в строке ввода адреса написать всё руками ?

например : "http://www.google.com/Ночу машу" ? то что не utf8 понятно ... но что тогда ?
...
Рейтинг: 0 / 0
кодировка HTTP Request'а
    #33677951
коты
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
согласно спецификации uri/uri непролазящие в ascii кодируются процентами. т.е. url кодируется и передается в ascii, а принимающая сторона раскодирует символы как ей вздумается.
...
Рейтинг: 0 / 0
кодировка HTTP Request'а
    #33678532
KRED
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
котысогласно спецификации uri/uri непролазящие в ascii кодируются процентами. т.е. url кодируется и передается в ascii, а принимающая сторона раскодирует символы как ей вздумается.

точно процентами ... а что это за кодировка ? как её раскодировать ?
...
Рейтинг: 0 / 0
кодировка HTTP Request'а
    #33678560
Фотография ZS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KRED котысогласно спецификации uri/uri непролазящие в ascii кодируются процентами. т.е. url кодируется и передается в ascii, а принимающая сторона раскодирует символы как ей вздумается.

точно процентами ... а что это за кодировка ? как её раскодировать ?

Вроде как

Код: plaintext
1.
 public   static  java.lang.String URLEncoded(java.lang.String string)
...
Рейтинг: 0 / 0
кодировка HTTP Request'а
    #33678604
oleg_de
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KREDкак её раскодировать ?
а в чем собственно проблема? может быть вопрос как получить параметры в POST?
...
Рейтинг: 0 / 0
кодировка HTTP Request'а
    #33679377
KRED
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
oleg_de KREDкак её раскодировать ?
а в чем собственно проблема? может быть вопрос как получить параметры в POST?

да нет ... про POST я в курсе, спасибо.

Я хочу с GETом работать.
...
Рейтинг: 0 / 0
кодировка HTTP Request'а
    #33679391
KRED
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вроде как

Код: plaintext
1.
 public   static  java.lang.String URLEncoded(java.lang.String string)


Больше похоже на URLDecoded(java.lang.String string,java.lang.String charset)

но она у меня работает если я URL закодирую в UTF-8 .... а если в броузере набрать "www.google.com/Ищу Машу" то на мой сайт она попадает в какойто другой кодировке. Тоесть броузер по умолчанию кодирует в какомто другом формате .... вот хочу узнать в каком !
...
Рейтинг: 0 / 0
кодировка HTTP Request'а
    #33679504
Фотография ZS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KREDвот хочу узнать в каком !

Кажется RFC1738, хотя опять не уверен, поищи в интернете
...
Рейтинг: 0 / 0
кодировка HTTP Request'а
    #33679528
wessen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тоесть броузер по умолчанию кодирует в какомто другом формате .... вот хочу узнать в каком !

кодирует он в той кодировке, в которой исходная страница.
...
Рейтинг: 0 / 0
кодировка HTTP Request'а
    #33679547
wessen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wessen Тоесть броузер по умолчанию кодирует в какомто другом формате .... вот хочу узнать в каком !

кодирует он в той кодировке, в которой исходная страница.
Хотя... если параметры человеческим образом передавать, т.е. через форму, то это верно.
А если их руками прописывать в URL, то похоже, что браузер их передает в кодировке, которая в локале ОС установлена. Но на это никаких стандартов нет, каждый браузер может делать все, что угодно.
...
Рейтинг: 0 / 0
кодировка HTTP Request'а
    #33679554
коты
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wessen wessen Тоесть броузер по умолчанию кодирует в какомто другом формате .... вот хочу узнать в каком !

кодирует он в той кодировке, в которой исходная страница.
Хотя... если параметры человеческим образом передавать, т.е. через форму, то это верно.
А если их руками прописывать в URL, то похоже, что браузер их передает в кодировке, которая в локале ОС установлена. Но на это никаких стандартов нет, каждый браузер может делать все, что угодно.

повторюсь - для соблюдения стандарта uri/url адрес должен быть закодирован в us-ascii

к кодировке передаваемых данных это не имеет никакого отношения
...
Рейтинг: 0 / 0
кодировка HTTP Request'а
    #33679588
wessen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
коты

повторюсь - для соблюдения стандарта uri/url адрес должен быть закодирован в us-ascii

к кодировке передаваемых данных это не имеет никакого отношения

Разговор тут идет про кодировку параметров(данных) передаваемых методом GET. Так что как это не имеет значения?
...
Рейтинг: 0 / 0
кодировка HTTP Request'а
    #33679978
oleg_de
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а зачем все-таки нужна кодировка? зная POST или GET, ведь можно получить параметры...
...
Рейтинг: 0 / 0
кодировка HTTP Request'а
    #33680076
KRED
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
oleg_deа зачем все-таки нужна кодировка? зная POST или GET, ведь можно получить параметры...

моя проблема заключается в следущем.
Есть некий сайт по обработке и поиску новостей . Будет возможность експорта найденых новостей в различных форматах (JavaScript,rdf 2.0 1.0 0.9) .

Передача параметров в сервлеты ехспорта должена быть в формате "GET" . Если я сам закодирую (поисковые слова на Русском, Украинском) в формат UTF-8 то в севлете их могу раскодировать. а если в броузере написать ... то нет.

вот пример :

поисковое слово "Россия" введено в броузере http://www.bysik.com:8080/rss/index.jsp?&searchvalue=%D0%EE%F1%F1%E8%FF&topic=1.

поисковое слово "Россия" закодировато Javа(й)...
http://www.bysik.com:8080/rss/index.jsp?topic=1.&searchvalue=%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D1%8F

Это могу "перекодировать" в понятный мне формат (utf-8)

А тот что введён в броузере нет ! Вопрос как его можно в сервлете разкодировать ? или ни как ?
...
Рейтинг: 0 / 0
кодировка HTTP Request'а
    #33680204
oleg_de
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а что выдаст: request.getParameter("searchvalue");
в первом и во втором случае?

и если добавить в сервлет:

response.setContentType("text/html; charset=ISO-8859-1");
или
response.setContentType("text/html; charset="utf-8");
...
Рейтинг: 0 / 0
кодировка HTTP Request'а
    #33683522
KRED
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
oleg_deа что выдаст: request.getParameter("searchvalue");
в первом и во втором случае?

и если добавить в сервлет:

response.setContentType("text/html; charset=ISO-8859-1");
или
response.setContentType("text/html; charset="utf-8");

ой .. посылаю голову пеплом ! сори .

в предыдущем моём посте я написал не правильные ссылки .

данные передаются не через параметры метода GET а как часть пути к ресурсу ..

http://www.bysik.com:8080/rss/export_rdf_20/20/%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D1%8F

или если руками написать : http://www.bysik.com:8080/rss/export_rdf_20/20/%D0%EE%F1%F1%E8%FF

вот ! так оно наверное будет понятнее .

Сори за ввод в заблуждение.
...
Рейтинг: 0 / 0
кодировка HTTP Request'а
    #33683573
oleg_de
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KRED...а как часть пути к ресурсу

и как это в сервлетах обрабатывается?
...
Рейтинг: 0 / 0
кодировка HTTP Request'а
    #33683643
KRED
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
oleg_de KRED...а как часть пути к ресурсу

и как это в сервлетах обрабатывается?
Код: plaintext
1.
2.
java.net.URLDecoder dec =  new  java.net.URLDecoder();
String url = dec.decode(request.getRequestURI(), "UTF-8");
String[] path = url.split("/");

дальше по масиву .... ну и не забыть в web.xml :
Код: plaintext
1.
2.
3.
<servlet-mapping>
        <servlet-name>export_rdf_20</servlet-name>
        <url-pattern>/export_rdf_10/*</url-pattern>
    </servlet-mapping>
...
Рейтинг: 0 / 0
кодировка HTTP Request'а
    #33683706
oleg_de
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
кодировка HTTP Request'а
    #33700311
KRED
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народ ... помогите !!! НЕЛП

Вот вроде стало всё ясно. разные броузеры по разному имеют кодировку по умолчанию ... с эти всё ясно.

Но вот на девелоперской машине у меня томкат работает сразу как веб-сервер.
Там сделал кодировку/перекодировку ... всё путём.

Но вот перенёс на хостинг ... а там вебсервером является аппаче , с томкатом он общается через ajp13 ... и если в пути написать что то на русском(в utf8 кодировке) то оно приходит в не понятной мне кодировке/форме.

Народ как её перевести в нормальный вид ? если к томкату обратиться по http порту то всё ок....

вот тому пример

http://www.allrssnews.com/rss/export_rdf_20/20/%D0%9A%D0%B8%D0%B5%D0%B2

http://www.allrssnews.com:8080/rss/export_rdf_20/20/%D0%9A%D0%B8%D0%B5%D0%B2

помогите плиз ...
...
Рейтинг: 0 / 0
кодировка HTTP Request'а
    #33700323
KRED
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
всё проблема решена ... всем спасибо.
...
Рейтинг: 0 / 0
кодировка HTTP Request'а
    #33715786
Alexey Turn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KREDНарод ... помогите !!! НЕЛП

Вот вроде стало всё ясно. разные броузеры по разному имеют кодировку по умолчанию ... с эти всё ясно.

Но вот на девелоперской машине у меня томкат работает сразу как веб-сервер.
Там сделал кодировку/перекодировку ... всё путём.

Но вот перенёс на хостинг ... а там вебсервером является аппаче , с томкатом он общается через ajp13 ... и если в пути написать что то на русском(в utf8 кодировке) то оно приходит в не понятной мне кодировке/форме.

Народ как её перевести в нормальный вид ? если к томкату обратиться по http порту то всё ок....

вот тому пример

http://www.allrssnews.com/rss/export_rdf_20/20/%D0%9A%D0%B8%D0%B5%D0%B2

http://www.allrssnews.com:8080/rss/export_rdf_20/20/%D0%9A%D0%B8%D0%B5%D0%B2

помогите плиз ...

Как решил? Та же проблема сейчас. Сообщи пожалуйста.
...
Рейтинг: 0 / 0
кодировка HTTP Request'а
    #33715791
KRED
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
String url = dec.decode(request.getRequestURI(), "UTF-8");
url =  new  String(url.getBytes("ISO8859_1"), "UTF-8");

низнаю или правильно ... но работает.
...
Рейтинг: 0 / 0
кодировка HTTP Request'а
    #33715832
Alexey Turn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня кодировки проставляются в фильтрах request.setC...

Вот два запроса:

Код: plaintext
1.
2.
http://host:8180/app/test.jsp?test=%EA

http://host/app/test.jsp?test=%EA
В настройках томката URIEncoding="Cp1251"

авторThis specifies the character encoding used to decode the URI bytes, after %xx decoding the URL. If not specified, ISO-8859-1 will be used.

В первом случае все работает отлично.

Во втором, Апач перенаправляет запрос томкату и получаю "?" Возможно в настройках апача jk е можно прописать что-то типа URIEncoding ?

Код: plaintext
 new  String(request.getParameter.getBytes("ISO8859_1"), "Cp1251") такая строчка в случае второго 
запроса отработает нормально

не хочется использовать такую запись по понятным причинам.
...
Рейтинг: 0 / 0
26 сообщений из 26, показаны все 2 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / кодировка HTTP Request'а
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]