Как включить вывод символов эмодзи на сайте

Как включить вывод символов эмодзи на сайте

Поддержка символов Emoji в браузерах становятся все полнее и полнее, но на сайтах использующие PHP и MySQL символы могут не поддерживаться из-за неправильной кодировки, в результате выводятся одни ??? вместо 😺😸😹.

Так-как эмодзи являются символами юникода, то все скрипты и страницы сайта должны быть в кодировке UTF-8.

Перед началом сделайте бэкап сайта и базы данных, далее по пунктам:

1. В PHP при подключении к БД нужно указать кодировку utf8mb4:

SET NAMES 'utf8mb4'
SQL

В PDO имеется возможность указать кодировку при подключении:

$dbh = new PDO('
	mysql:dbname=db_name;host=localhost', 
	'user', 
	'password', 
	array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8mb4'")
);
PHP

Если используется расширение MySQL:

$link = mysql_connect('localhost', 'user', 'password');
mysql_select_db('db_name');
mysql_query("SET NAMES 'utf8mb4'");
PHP

Или MySQLi:

$mysqli = new mysqli('localhost', 'user', 'password', 'db_name');
$mysqli->query("SET NAMES 'utf8mb4'");
PHP

2. В MySQL тексты обычно хранятся в кодировке utf8_general_ci, эта кодировка не поддерживает эмодзи, поэтому нужно перекодировать их в utf8mb4_general_ci.

Запрос на перекодировку нужно сделать единоразово для всех таблиц базы, у которых планируется использование символов. Запрссы можно выполнить в PhpMyAdmin.

ALTER TABLE `table1` CONVERT TO CHARACTER SET utf8mb4;
ALTER TABLE `table2` CONVERT TO CHARACTER SET utf8mb4;
ALTER TABLE `table3` CONVERT TO CHARACTER SET utf8mb4;
ALTER TABLE `table4` CONVERT TO CHARACTER SET utf8mb4;
SQL
29.01.2020, обновлено 19.01.2021
15517
Предыдущая запись Выполнение заданий по Cron
Следующая запись Метрика API

Комментарии 1

Nefedoff36 Nefedoff36
14 декабря 2021 в 18:29
Здравствуйте, попросили сделать эмоджи на сайте, все делал по инструкции но ничего не помогло. Что ещё можно сделать?

, чтобы добавить комментарий.

Другие публикации

Настройки кодировки UTF-8 на сайте
В данной статье сведен перечень приемов для правильной работы сайта в кодировке UTF-8.
11056
+2
Перекодировка текста UTF-8 и WINDOWS-1251
Проблема кодировок часто возникает при написании парсеров, чтении данных из xml и csv файлов. Ниже представлены способы...
81033
-12
Дополнительные функции mb_string
Как известно строковые функции PHP не правильно работают с русским текстом в кодировке UTF-8. Чтобы решить эту проблему...
9230
+2
PHP-класс обертка для PDO
Класс значительно упрощает работу с PDO, сокращает код. Реализован на статических классах и не требует создание экземпляра класса.
24327
+12
Получить фото из Instagram без API
Так как Instagram и Fasebook ограничили доступ к API, а фото с открытого аккаунта всё же нужно периодически получать и...
25393
+7
Постраничный вывод и базы данных
В SQL запросах, для ограничения количества строк в результате используется инструкция LIMIT, например следующий вернёт...
19071
0