Общая ошибка: 1366 Неверное строковое значение: '\ xF0 \ x9F \ x8D \ xB8! ...'

Следующая ошибка появляется, когда пользователь отправляет сообщение, содержащее эмодзи (а именно, когда сообщение хранится в базе данных MySql):

PDOException: SQLSTATE[HY000]: General error: 1366 Incorrect string value: '\xF0\x9F\x8D\xB8 !...' for column 'message' at row 1 in ...

Я уже проверяю следующие вопросы:

На все предыдущие вопросы предлагается один и тот же ответ: изменить таблицу на utf8mb4 наборный. Вот что я сделал: я изменил свою таблицу и соответствующий столбец на utf8mb4_unicode_ci.

Но проблема все равно появляется. Любая идея ?

Когда вы открываете соединение с db, у вас случайно не запускается что-то вроде SET NAMES utf8? Если да, поменяйте его на SET NAMES utf8mb4

Alon Eitan 30.12.2018 18:56
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
4
1
8 383
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Установка столбца и таблицы на utf8mb4 - это нормально, однако для бесперебойной работы требуются дополнительные настройки:

Подключение PDO:

$dsn = 'mysql:host=my_ip;dbname=my_db;charset=utf8mb4';

Порядок выполнения SQL после подключения и перед выполнением запросов:

$conn->exec("set names utf8mb4");

Другие вопросы по теме