![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
schmidt |
|
|||
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 3.6.2006 Репутация: нет Всего: нет |
Доброго времени суток!
Есть база данних, в которой есть таблица professor, туда мне надо сейвить преподов с кириличной информацией. Когда вставляю запись в базу данних через пхпМайАдмин или через конольку, то все нормально с кодировками, работает то, что при создании базы данных я прописал set charset cp1251. Но когда я передаю данних о преподе через веб форму серелету-контроллеру, который потом передает это Хибернейту засейвить, то получаю ексепшин: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'first_name' at row 1 com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3374) в поле first_name я вводил кирилицей |
|||
|
||||
5ad1sT |
|
|||
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 10.2.2009 Репутация: нет Всего: нет |
Мне кажется что тут проблема не в кодировке.. у тебя поле в базе ограниченного размера по символам, а ты туда заносиш слишком длинное слово/словосочетание.. Это сообщение отредактировал(а) 5ad1sT - 11.6.2009, 00:10 |
|||
|
||||
schmidt |
|
|||
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 3.6.2006 Репутация: нет Всего: нет |
Когда английскими вводишь, То все нормально - сейвит. А поля в базе я всюда ставил на варЧар по 256 символов
|
|||
|
||||
Vasay |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2097 Регистрация: 8.3.2006 Репутация: 18 Всего: 73 |
schmidt,
От cp1251 я бы отказался в пользу UTF-8 Посмотрите тему, может поможет: http://forum.vingrad.ru/forum/topic-173998...ysql/index.html -------------------- Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны. |
|||
|
||||
Старовъръ |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 491 Регистрация: 8.5.2008 Репутация: 1 Всего: 10 |
schmidt, ты б в дебагере глянул, может в сервлет данные приходят битые.
Это сообщение отредактировал(а) Старовъръ - 13.6.2009, 17:42 -------------------- |
|||
|
||||
ShurikA |
|
|||
![]() Зануда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1364 Регистрация: 29.10.2005 Где: Канада Репутация: нет Всего: 3 |
schmidt,
По моему дело всё в том что когда сервер получает кирилицу букбы превращаутся в ASCII коды, а они как известно не один знак (пробел это на пример. Вот и получается у тебя очень длинное поле. Попробый загнать в базу чтонибудь очень короткое, и посмотри. |
|||
|
||||
Старовъръ |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 491 Регистрация: 8.5.2008 Репутация: 1 Всего: 10 |
В общем нужно ждать топикстартера) -------------------- |
|||
|
||||
ShurikA |
|
|||
![]() Зануда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1364 Регистрация: 29.10.2005 Где: Канада Репутация: нет Всего: 3 |
это латинские буквы один байт ![]() |
|||
|
||||
Старовъръ |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 491 Регистрация: 8.5.2008 Репутация: 1 Всего: 10 |
Кол-во байт определяет кодировка. Юникод, в котором присутствуют и русские буквы, использует 2 байта для кодирования одного символа, не зависимо от того, английский это символ или китайский.
ASCII - это не кодировка, это цифровое представление символов. На этой таблице базируется большинство(если не все) кодировки. В табице ASCII есть представление только английского алфавита. Всего там 128 символов. -------------------- |
|||
|
||||
ShurikA |
|
|||
![]() Зануда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1364 Регистрация: 29.10.2005 Где: Канада Репутация: нет Всего: 3 |
||||
|
||||
schmidt |
|
|||
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 3.6.2006 Репутация: нет Всего: нет |
В сервлет данные приходят корректно: вывожу параметры в файл - все корректно, все правильно. Но, получается, когда сервелт их передает классу ProfessorDAO, который делает сейв в базу, то в базе они отображаются некорректно.
Напишу еще раз последовательность сохранения: Есть класс Professor - сущность, в которой инкапсулируются данние о профессоре Есть класс ProfessorDAO - клас, в котором определен метод
Вот сервлет и вызывает этот метод для сейва профессора в базе данных. Все равно в базе данных при просмотре отображаются знаки вопросов... |
|||
|
||||
ShurikA |
|
|||
![]() Зануда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1364 Регистрация: 29.10.2005 Где: Канада Репутация: нет Всего: 3 |
||||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |