Сайт PHP / mysql с использованием utf8mb4 не будет корректно извлекать emojis из базы данных, несмотря на то, что utf8mb4 указывается везде, что я могу найти, чтобы его поместить

Сегодня я преобразовал базу данных mysql 5.7 в utf8mb4.

В качестве теста я положил poo emoji (💩) в поле, используя Navicat.

Он отлично отображает Navicat, даже если я уйду и снова открою программу.

Проблема возникает, когда я извлекаю его с помощью PDO в своем скрипте и повторяю его в браузере; Я получаю (6 диагональных черных вопросительных знаков).

Если я копирую символ непосредственно в свой скрипт и эхо-сигнал, он работает.

Так что это не проблема с mysql.

Это не проблема с шрифтом.

Это не проблема с моим браузером.

Это не проблема с эхом.

Итак … это проблема с PDO?

Это мой код PDO:

$PDO = new PDO('mysql:host='.DB_SERVER.';dbname='.DB_NAME.';charset=utf8mb4', DB_USER, DB_PASSWORD, [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::ATTR_EMULATE_PREPARES => false ]); $PDO->query("SET NAMES 'utf8mb4' COLLATE 'utf8mb4_unicode_ci'"); $rs = $PDO->query("SELECT name FROM users WHERE id = 1000"); // name has been set to 💩 while ($a = $rs->fetch()) { print_r($a); } 

Если я проверяю вывод SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%'; в php в браузере каждый выход правильно utf8mb4 / utf8mb4_unicode_ci (кроме character_set_system который просто utf8 , но я думаю, что это нормально?)

Что еще это может быть?