@Fedi4kin

Проблемы с кодировкой mysql ERROR 1366 (HY000) at line 1: Incorrect string value. Как исправить?

Ошибка выглядит так:
│ERROR 1366 (HY000) at line 1: Incorrect string value: '\xF0\x9F\x91\x91\xD0\x98...' for column 'name' at row 1

Она возникает, когда в базу попадает название сообщества, с использованием символов вк.
https://vk.com/public46112949

Пробовал менять кодировку в таблице(utf8mb4 помогает только отчасти) и разные комбинации методов из интернета. Не помогло.
Подскажите, как удалить эти символы?
  • Вопрос задан
  • 4189 просмотров
Пригласить эксперта
Ответы на вопрос 1
nazarpc
@nazarpc
Open Source enthusiast
Во-первых uft8mb4 решает проблему целиком и полностью, только что перепроверил.
Всё зависит от того, как вы вставляете эти символы. Используя prepared statements или ручной вызов mysqli_real_escape_string() (если это PHP) у вас не будет никаких проблем с этими символами.

Убрать символы тоже можно, первое что приходит в голову - с помощью mb_* функций определить длину строки, потом посимвольно перебирать и получать код символа. Если число больше 2х байт - удалять.
Ответ написан
Ваш ответ на вопрос

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

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