
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
14.02.2005, 15:03
|
|||
|---|---|---|---|
|
|||
Кодировки |
|||
|
#18+
Привет! У меня проблема - создал сервлет, получающий значение из HTML формы(русские буквы), и этот же сервлет должен выдавать записи из базы данных Oracle, причем тоже в кириллице. response.setContentType("text/html; charset=windows-1251"); PrintWriter out=response.getWriter(); Так вот, если я оставляю значение чарсет windows-1251 - значение полученное из формы выводится на html-страницу с заменой всех русских букв знаком вопроса, но данные из таблицы выводятся нормально. А если оставляю response.setContentType("text/html"); PrintWriter out=response.getWriter(); То получается наоборот - строка полученная из формы выводится правильно, а строки из таблицы - с заменой русских букв на "?". Посоветуйте как получить обе строки с "правильными" символами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
14.02.2005, 16:20
|
|||
|---|---|---|---|
|
|||
Кодировки |
|||
|
#18+
Я делаю вот так : response.setContentType("text/html;charset=Windows-1251"); request.setCharacterEncoding("Cp1251"); и вроде все работает.... з.ы. Схема та же - форма -> БД(Informix) и обратно.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
14.02.2005, 16:24
|
|||
|---|---|---|---|
|
|||
Кодировки |
|||
|
#18+
точнее вот так: PrintWriter out = response.getWriter(); response.setContentType("text/html;charset=Windows-1251"); request.setCharacterEncoding("Cp1251"); и эти строчки должны быть ПЕРВЫМИ в методе сервлета.... (doGET, doPOST....) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.02.2005, 09:12
|
|||
|---|---|---|---|
|
|||
Кодировки |
|||
|
#18+
Всё! Всем большое спасибо! =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.02.2005, 09:54
|
|||
|---|---|---|---|
|
|||
Кодировки |
|||
|
#18+
Насколько я вижу проблема в том что неверно воспринимается кодировка request'а. Т.е. ваш ответ(response) броузеру верен, а вот когда сам броузер посылает вам запрос (и как обычно не указывает кодировку параметров) - ваш сервлет считает что параметры переданы в ISO-8859-1 Можете это проверить выполнив это System.err.println(new String(request.getParameter("param_name").getBytes("ISO-8859-1"),"Cp1251"))); в jsp такая проблема решается с помощью <fmt:requestEncoding/> - можете посмотреть спецификацию на JSP - там будет подробное описание проблемы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=59&mobile=1&tid=2152949]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
102ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
| others: | 224ms |
| total: | 435ms |

| 0 / 0 |
