powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Кодировки
6 сообщений из 6, страница 1 из 1
Кодировки
    #32914429
zhas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет! У меня проблема - создал сервлет, получающий значение из HTML формы(русские буквы), и этот же сервлет должен выдавать записи из базы данных Oracle, причем тоже в кириллице.

response.setContentType("text/html; charset=windows-1251");
PrintWriter out=response.getWriter();

Так вот, если я оставляю значение чарсет windows-1251 - значение полученное из формы выводится на html-страницу с заменой всех русских букв знаком вопроса, но данные из таблицы выводятся нормально. А если оставляю

response.setContentType("text/html");
PrintWriter out=response.getWriter();

То получается наоборот - строка полученная из формы выводится правильно, а строки из таблицы - с заменой русских букв на "?".

Посоветуйте как получить обе строки с "правильными" символами.
...
Рейтинг: 0 / 0
Кодировки
    #32914633
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Весь исходник давай.
...
Рейтинг: 0 / 0
Кодировки
    #32914675
Vinny Puhh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я делаю вот так :

response.setContentType("text/html;charset=Windows-1251");
request.setCharacterEncoding("Cp1251");

и вроде все работает....

з.ы. Схема та же - форма -> БД(Informix) и обратно....
...
Рейтинг: 0 / 0
Кодировки
    #32914688
Vinny Puhh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
точнее вот так:

PrintWriter out = response.getWriter();
response.setContentType("text/html;charset=Windows-1251");
request.setCharacterEncoding("Cp1251");

и эти строчки должны быть ПЕРВЫМИ в методе сервлета.... (doGET, doPOST....)
...
Рейтинг: 0 / 0
Кодировки
    #32915552
zhas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всё! Всем большое спасибо! =)
...
Рейтинг: 0 / 0
Кодировки
    #32917711
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насколько я вижу проблема в том что неверно воспринимается кодировка request'а. Т.е. ваш ответ(response) броузеру верен, а вот когда сам броузер посылает вам запрос (и как обычно не указывает кодировку параметров) - ваш сервлет считает что параметры переданы в ISO-8859-1

Можете это проверить выполнив это

System.err.println(new String(request.getParameter("param_name").getBytes("ISO-8859-1"),"Cp1251")));

в jsp такая проблема решается с помощью <fmt:requestEncoding/> - можете посмотреть спецификацию на JSP - там будет подробное описание проблемы
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Кодировки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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