Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > помогите с кодировкой


Автор: pgood 3.2.2005, 12:17
В одном сервлете делаю <FORM> из которой вызывается другой сервлет, в нем получаю данные из полей этой формы, причем полученный русский текст выглядит так: ????? ???????????

плиз, расскажите где тут собака порылась и как с этим бороться

Автор: Wanderer2019 3.2.2005, 13:54
не уверен на счет будет ли работать... попробуй поставить что нибудь вроде
Код

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>


в начале загружаемой страницы...

Автор: 3,14 3.2.2005, 18:03
Проблема известная, посмотри здесь : http://lib.juga.ru/article/archive/19/, если что будет непонятно - спрашивай!

Автор: igon 3.2.2005, 21:02
и в другом сервлете ПЕРЕД первым обращением к request добавь
Код

request.setCharacterEncoding("windows-1251");

Автор: pgood 11.3.2005, 10:23
smile . Ничего не помогло.
Если, в первом сервлете установить:
Код

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

а во втором вообще ничего не ставить.
То на страничке выводимой вторым сервлетом, кирилица получаемая из формы выглядит нормально, а кирилица из программы в виде вопросов. Иначе все наоборот.

Но мне главное чтобы эти строки в БД нормально заносились. А в БД они в любом случае заносятся в виде вопросов. Я использую ODBC-JDBC мост, поэтому попробовал установить кодировку для моста, как показано http://lib.juga.ru/article/archive/31/, но эффекта никакого.

Может, кто-нибудь еще чего подскажет?

Автор: Sleepy_PIP 11.3.2005, 12:11
Цитата(pgood @ 11.3.2005, 10:23)
smile . Ничего не помогло.
Если, в первом сервлете установить:
Код

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

а во втором вообще ничего не ставить.
То на страничке выводимой вторым сервлетом, кирилица получаемая из формы выглядит нормально, а кирилица из программы в виде вопросов. Иначе все наоборот.

Но мне главное чтобы эти строки в БД нормально заносились. А в БД они в любом случае заносятся в виде вопросов. Я использую ODBC-JDBC мост, поэтому попробовал установить кодировку для моста, как показано http://lib.juga.ru/article/archive/31/, но эффекта никакого.

Может, кто-нибудь еще чего подскажет?

А БД у тебя какая? может там чарсет не установлен правильно?

Автор: Guest 11.3.2005, 15:32
Цитата(Sleepy_PIP @ 11.3.2005, 12:11)
А БД у тебя какая? может там чарсет не установлен правильно?

БД у меня Access XP.
Для драйвера я пробовал и Cp1251 и Windows-1251 устанавливать.
Мне кажется проблемы начинаются в сервлете.
Надо сделать так, чтобы кодировка кирилицы которую я пишу из сервлета и которую я получаю из формы совпадали, иначе мне кажется сервлет в коректном виде в БД по-любому не запишет.
Если кто-нть делал что-нть подобное пришлите пожалуйста работающий пример.

Автор: Sleepy_PIP 11.3.2005, 18:42
Цитата(Guest @ 11.3.2005, 15:32)
Цитата(Sleepy_PIP @ 11.3.2005, 12:11)
А БД у тебя какая? может там чарсет не установлен правильно?

БД у меня Access XP.
Для драйвера я пробовал и Cp1251 и Windows-1251 устанавливать.
Мне кажется проблемы начинаются в сервлете.
Надо сделать так, чтобы кодировка кирилицы которую я пишу из сервлета и которую я получаю из формы совпадали, иначе мне кажется сервлет в коректном виде в БД по-любому не запишет.
Если кто-нть делал что-нть подобное пришлите пожалуйста работающий пример.

Я-б честно говоря попробовал-бы все-ж следущее:
1. зачитать ф. в win-1251 кодировке.
2. записать записи из этого ф. в БД.
3. считать их оттуда в новой транзакции
4. записать в другой ф. и смотреть что получилось ...
но это только проверка БД.

Автор: pgood 13.3.2005, 04:06
Все! Корень проблемы найден, пошел дальше ковыряться.
Кому интересно, смотрите здесь http://servlets.chat.ru/

Автор: Sleepy_PIP 13.3.2005, 18:54
Цитата(pgood @ 13.3.2005, 04:06)
Все! Корень проблемы найден, пошел дальше ковыряться.
Кому интересно, смотрите здесь http://servlets.chat.ru/

я совершенно успешно работаю с томкатом-5, и JSP (JSF), и НЕ испытываю проблеммы:
For example, Tomcat always transform strings from html forms with ISO-8859-1 encoding, so if you post in other encoding you will receive "???"
и ничего специально не делал, кроме установки чарсета страниц(ы)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)