@vvvadimos

Почему не записываются emoji в базу данных?

При записи эмоджи из редактора, в базу данных записываются знаки вопроса. Такая кодировка в phpmyadmin 65d4ad20b1fac486435704.png . В wp-config.php прописано это 65d4ad3a806ac773413246.png . Вот что выводит вордпресс по базе данных 65d4ad51e6078615885154.png . И так же он пишет это предупреждение 65d4ad65d01ad041467305.png . Тема сайта чистая, не трогал руками совсем, с самого начала такая проблема с записью. Пробовал менять версии php, не помогает. Если записывать символ эмоджи прям в phpmyadmin, то записывается, но при выводе знаки вопроса. Вот что ответили в техподдержке хостинга: "Значит тут проблема именно в самом WP и php, либо emoji несовместимы с mariadb, а так как у нас она везде, то у меня нет предложений." Куда копать, где искать проблему?
  • Вопрос задан
  • 220 просмотров
Решения вопроса 1
Mike_Ro
@Mike_Ro
Python, JS, WordPress, SEO, Bots, Adversting
Бд mysql wp должна иметь кодировку utf8mb4 (поддерживает хранение символов юникод втч. эмоджи), а вот utf8 в mysql не поддерживает 4 байтные символы, к которым относятся и эмоджи, из за чего они заменяются на знаки вопроса.

wp-config.php:
define('DB_CHARSET', 'utf8mb4');
define('DB_COLLATE', 'utf8mb4_unicode_ci');

И изменяем кодировку таблицы бд c utf8 на utf8mb4.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Refguser
Делаю ИМ и другие решения
Тебе нужно установить utf8mb4_general_ci не только в таблицах базы, но и в самой БД.
Для этого можно в PMA выйти на уровень выше твоё БД и там установить сопоставление

Ks17096.jpeg

ЗЫ. В зависимости от настроек сервера это может не сработать. Тогда настраивать на сервере.

UPD. В wp-config.php должно быть
define('DB_CHARSET', 'utf8mb4');
utf8mb4, а не utf8
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы