Задать вопрос
abdulgalimov
@abdulgalimov

Почему не удается сохранить в MySQL строку с эмодзи символами?

Добрый день.
Есть MySQL база с кодировкой utf8mb4. Пишу приложение на JAVA+Hibernate, сразу после создания SessionFactory пишу следующий код (где то в сети нашел такой пример):
NativeQuery query = createNativeQuery("SET NAMES 'utf8mb4'");
query.executeUpdate();

И вроде бы все хорошо, строки с эмодзи символами сохраняются в базу и считываются нормально.
Но иногда, довольно редко, вижу в логах вот такую ошибку:
Incorrect string value: '\xF0\x9F\x87\xA9\xF0\x9F...' for column 'name' at row 1

Проблема воспроизводится с разными эмодзи-символами, необязательно то что я написал выше. Причем если попытаться повторить запись в базу с точно такой же строкой - все работает нормально, и поэтому не удается отладить эту ошибку.

Кто знает помогите разобраться.
Спасибо.

PS Я научился воспроизводить эту проблему. Осталось понять как её побороть :(
  • Вопрос задан
  • 423 просмотра
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
SagePtr
@SagePtr
Еда - это святое
Могу предположить, что в кодировке какого-нибудь поля забыли поставить utf8mb4
Ответ написан
firezhek
@firezhek
Java Developer
Возможно проблема в размере строки, попробуйте записать в Blob
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы