LINUX.ORG.RU

еще один вопрос по Hibernate (ошибка)


0

1

Пацаны, я новенький, и не очень хорошо понимаю Hibernate. Я пишу простенькое веб-приложение на тапестре5, оно работает с MySQL через Hibernate. Ввожу в приложении текст на русском, создаю новую запись - выдает исключение: Incorrect string value: '\xD0\x90\xD1\x80\xD0\xB1...' for column 'name' at row 1.

Если строка на английском - работает нормально. Я так понимаю, что-то с кодировкой. А еще в эклипсе, когда я пишу в файлах RandomName.properties, на русском, у меня тоже выводится «\u041F» (и т.д.), вместо русского символа. Причем, если навести курсор на такую строку - то в подсказке отображается русский символ. Я так понял - это уже коды символов из юникода.

Наверное, utf8 кодировку на базу поставить надо.

show create database <твоя база>;

anonymous
()
Ответ на: комментарий от anonymous

я могу ее поставить в воркбенче, через alter table, и выбрав utf8 как default collation, или это не то?

sharp91
() автор топика

В /etc/mysql/my.cnf проставьте вот такие параметры:
default-character-set = utf8
default-collation = utf8_general_ci
character-set-server = utf8
collation-server = utf8_general_ci
init-connect = 'SET NAMES utf8'

По поводу пропертей - не пишите по русски вообще нигде в проекте, это дурной тон. По-хорошему, русский может содержаться только в файлах локализации. Проперти по умолчанию в latin1, wicket 1.5 умеет UTF-8 проперти, возможно тапестри тоже умеют.

anonymous
()
Ответ на: комментарий от anonymous

я как раз в файлах локализации и пишу, и в html они нормально отображаются, а в эклипсе - как нажму русскую клавишу, сразу ее код в латин1.

sharp91
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.