Добавление и вывод эмодзи в MySQL

При отправке POST-запроса на изменение строки text с кодировкой utf8mb4_general_ci эмодзи отображаются в БД как вопросительные знаки ????. В чем может быть проблема? Как правильно записать строку с эмодзи внутри в БД? Для информации: если вручную в строку вставить эмодзи, то эмодзи отображается при выводе echo $row['text']; как один вопросительный знак. Использую PDO.


Ответы (1 шт):

Автор решения: Yaroslav Molchan

Так как не показали дамп или подключение, перечислю 2 пункта, которые нужно выполнить.

  1. Проверить, а лучше ещё раз сменить кодировку и представление для колонки:
ALTER TABLE `name` MODIFY `text` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

Теперь можно добавить emoji в таблицу, они должны отображаться нормально.

  1. Настроить кодировку при подключении:
mysql_query('SET NAMES utf8mb4');

Теперь emoji должны отображаться в базе нормально и php так же нормально будет работать с emoji.

→ Ссылка