Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Кирилли, JSP & MySQL 
V
    Опции темы
MisterCleric
Дата 26.4.2006, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1043
Регистрация: 16.2.2006
Где: Харьков, Украина

Репутация: 33
Всего: 38



Хочу занести в табилцу данные из формы, введеные на русском языке.
Кодировка в базе UTF8-bin, тоже и в jsp
Код

  <jsp:directive.page contentType="text/html; charset=UTF-8" />

При это данные, введенные в базу руками на русском, на страничке отображаються корректно.
Сохранение данных из jsp на английском тоже сохраняеться корректно, но при попытке сохранения кирилицы TomCat выдает:
Код

org.apache.jasper.JasperException: javax.servlet.jsp.JspException: 
        UPDATE staff SET Name = "Ñ�миÑ�ми",
                         LastName = "ываыва",
                         Phone = 1212, 
                         Job_id = 14,
                         Tabnom = 5
                         where Tabnom = 5
        : Data truncation: Data too long for column 'Name' at row 1
и т.д.


Подскажите, как побороть эту проблему, где не искал, что не делал ничего не помогает. Даже так:
Код

                   url="jdbc:mysql://localhost:3306/factory?characterEncoding=UTF-8" />

при задании Context Connection Pool 


--------------------
ПРИШЕЛ, УВИДЕЛ - ПЕРЕПИСАЛ...
PM MAIL ICQ   Вверх
ALKS
Дата 26.4.2006, 16:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 354
Регистрация: 22.3.2006

Репутация: 6
Всего: 11



когда-то спасало использование фильтра filters.SetCharacterEncodingFilter 

в web.xml надо добавить что-то врод этого:
Код

<filter>
    <filter-name>Set Character Encoding</filter-name>
    <filter-class>filters.SetCharacterEncodingFilter</filter-class>
    <init-param>
      <param-name>encoding</param-name>
      <param-value>UTF-8</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>Set Character Encoding</filter-name>
    <servlet-name>action</servlet-name>
  </filter-mapping>


это выдрано из нашего достаточно старого проекта. про последние версии Tomcat я не уверен, ну и естественно filter-mapping правильно впишите... 
PM   Вверх
Tony
Дата 26.4.2006, 17:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1159
Регистрация: 3.3.2006
Где: Riga

Репутация: 6
Всего: 12



Уфф...
1.JSP долзны быть в UTF-8
2.Соединение с БД долзно быть в UTF-8
3.Создай филтер для кодировок(implements Filter)
4.База должна быть создана в UTF-8

И всё будет пу4ком 


--------------------
user posted image
user posted image
PM MAIL Skype   Вверх
tux
Дата 27.4.2006, 06:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Летатель
***


Профиль
Группа: Участник Клуба
Сообщений: 1853
Регистрация: 10.2.2005
Где: msk.ru

Репутация: 74
Всего: 132



PM MAIL Skype GTalk Jabber YIM   Вверх
sandello
Дата 27.4.2006, 06:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 295
Регистрация: 18.5.2005
Где: Пермь

Репутация: нет
Всего: 2



Цитата(MisterCleric @  26.4.2006,  18:44 Найти цитируемый пост)
Подскажите, как побороть эту проблему, где не искал, что не делал ничего не помогает. Даже так:
Код

url="jdbc:mysql://localhost:3306/factory?characterEncoding=UTF-8"

при задании Context Connection Pool

Попробуй задать не "UTF-8" а "utf8". Мне это помогло :-) 


--------------------
user posted image
PM MAIL Jabber   Вверх
MisterCleric
Дата 27.4.2006, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1043
Регистрация: 16.2.2006
Где: Харьков, Украина

Репутация: 33
Всего: 38



Всем спасибо! 
У меня получилось так:
Код

  <fmt:requestEncoding value="UTF-8" />
  <jsp:directive.page contentType="text/html; charset=UTF-8" />

На всех страничках приложения.
Пишут, что установки для странички не достаточно.
плюс
Код

   Context path="/fromm" docBase="fromm"
                debug="5" reloadable="true" crossContext="true">
          <Resource name="jdbc/fact" auth="Container" type="javax.sql.DataSource"
                   maxActive="100" maxIdle="30" maxWait="10000"
                   username="Cleric" password="raven666" driverClassName="com.mysql.jdbc.Driver"
                   url="jdbc:mysql://localhost:3306/factory?characterEncoding=UTF-8" />
        </Context>

Что значит: установка кодировки для праметров в ответе и установка кодировки при связи с БД

И без усяких фильтров! 


--------------------
ПРИШЕЛ, УВИДЕЛ - ПЕРЕПИСАЛ...
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0705 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.