Java <---> MySQL кодировка
Java <---> MySQL кодировка
Xpoint.ru » Форумы » Программирование » Java
Метки: [без меток]
Форум F.A.Q. Статьи Полезные ссылки Архив форума Рейтинг пользователей
2007-07-16 13:34:01 Kanat
Привет всем,
Я создал в JSP и сервлетах сайт и в сайте я должен регистрировать пользователя. А данные от пользователя могут быть юникод символами, и вот если я начну писать данные в MySQL то туда пишется одни вопрасительные знаки в место символа. Примерно вот так: "вот так." пишет в БД как "??? ???."
Пожалуйста можете подсказать в чем дело !?
спустя 2 часа 49 минут Pil(0/22)
В том что, скорее всего, Ваша СУБД настроена на Win-1251 кодировку, а J2EE работает с юникодом. Установите UTF в MySQL в качестве кодировки для БД.
спустя 13 часов Роман Чемисов(0/327)
Kanat
После подключения к БД делайте (в SQL)
SET NAMES utf8;
спустя 1 день 7 часов Kanat
Большое спасибо!
спустя 1 год 2 месяца пользователь удален
Хотя тема старая, но добавлю и свои две копейки:
- в настройках JDBC драйвера к MySQL надо добавить параметр с указанием кодировки в которой данные хранятся в базе, "characterEncoding" со значением "UTF-8" или со значением "CP1251", в зависимости от того какая кодировка реально используется в таблице для хранения данных. Более подробно проблема описана тут: http://www.brim.ru/faq/java/encoding.html#1
спустя 2 месяца 2 дня Сергей Золотухин(0/126)
Друзья, у меня та же самая проблема, но при использовании библиотеки Hibernate (по этой причине предыдущее сообщение для меня полезно, но только в теории). База в UTF, SET NAMES на всякий случай делал, с Hibernat'овом cfg даже воткнул <property name="hibernate.connection.url">jdbc:mysql://localhost/test?encoding=UTF-8</property> на всякий случай — не помогает. Косяк браузер->сервер исключаю, хардкодя значение для базы прямо в java-коде (код тоже в UTF :).
Помогите, если кто сталкивался, а то у меня уже кровь сворачивается... :\
спустя 10 минут Сергей Золотухин(0/126)
Затупил :-) Добавил к connectionString ?encoding=UTF-8&useUnicode=true&characterEncoding=UTF-8