MySQL обрабатывает текст Unicode для utf8mb4_unicode_ci - PullRequest
0 голосов
/ 13 декабря 2018

При попытке вставить строку в таблицу появляется следующая ошибка.

Ошибка: ER_TRUNCATED_WRONG_VALUE_FOR_FIELD: Неверное значение строки: '\ xF0 \ x9F \ x98 \ x8D ...' длястолбец 'preview_text' в строке 1

\ xF0 \ x9F \ x98 \ x8D - это смайлик с улыбающимся лицом.до utf8mb4_unicode_ci, но это было так по умолчанию, и все же.

enter image description here

Что еще я должен изменить?

1 Ответ

0 голосов
/ 13 декабря 2018

Сразу после подключения вы должны определить кодировку следующим образом:

SET NAMES 'utf8mb4';

Обычно в вашем клиенте есть возможность установить его (более элегантно, чем запрос), дляпример: NodeJS:

mysql.createPool({
    ...
    charset : 'utf8mb4'
});

и MySQLi PHP

$mysqli->set_charset("utf8mb4");
...