Для того, чтобы это работало, вам нужно две вещи:
- Для всех символьных столбцов должен быть установлен тип
utf8mb4
- Соединение с базой данных должно быть
encoding: utf8mb4
в вашемconfig/database.yml
Как только оба из них установлены, данные должны проходить правильно.Там нет никакой альтернативы, кроме как правильно установить кодировку.Вы не можете «избежать» их, так как они являются действительными данными, или это было бы, если тип столбца utf8mb4
.Ядро базы данных MySQL отклоняет их как недопустимые для этой кодировки.
MySQL поддерживает 4-байтовый UTF-8 тогда и только тогда, когда вы устанавливаете кодировку как utf8mb4
.Это необычно, поскольку другие базы данных, такие как Postgres, делают это «из коробки» без различия между 1-3-байтовым UTF-8 и 4-байтовым UTF-8.