2

Здравствуйте! Я работаю с VK API, и мне нужно записать то, что написал пользователь, в базу данных. Проблема в том, что если пользователь отправит эмодзи, они заменяются четырьмя вопросительными знаками -- "????". То есть, если пользователь отправит "", в базу данных запишется "????". Кодировка БД -- utf8mb4_unicode_ci.

Подключаюсь вот так:

mysqli_query($connect, 'SET NAMES utf8');
mysqli_query($connect, 'SET CHARACTER SET utf8');
mysqli_query($connect, 'SET COLLATION_CONNECTION="utf8mb4_unicode_ci"');

Сам php-скрипт обрабатывает эмодзи нормально (пробовал отправлять пользователю в ответ его же сообщение -- всё ок).

1 Answers1

1

Всё, решил проблему! Я просто изменил запрос. Теперь он выглядит так:

mysqli_query($connect, 'SET NAMES utf8mb4');
mysqli_query($connect, 'SET CHARACTER SET utf8mb4');
mysqli_query($connect, 'SET COLLATION_CONNECTION="utf8mb4_unicode_ci"');
  • Аналогичная проблема, ни один из вышеописанных способов не помог. Гуглил несколько часов. Что примечательно - на одном компе (win10) с одинаковой версией mysql работает, а на другом компе (win7) - упорно превращает эмоджи в вопросы... Хотя кодировка базы и таблицы и подключения и вообще чего угодно - utf8mb4. – Андрей Рик Nov 14 '19 at 09:36