Есть "замечательный" символ "🐉".
И при попытке Insert его в таблицу получается, вот это:
ERROR 1300 (HY000): Invalid utf8mb4 character string: '\xF0\x9F\x90\x89'
Какая кодировка нужна?
Ответ
Подозреваю, что это ошибка на "стороне клиента".
Попробуйте:
SET NAMES utf8mb4;
MariaDB под рукой нет, вот как ведёт себя mysql:
mysql> describe Storage;
+-------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| p | varchar(255) | NO | PRI | NULL | |
| val | longtext | NO | | NULL | |
+-------+--------------+------+-----+---------+-------+
2 rows in set (0,00 sec)
mysql> INSERT INTO Storage VALUES('Dragon', '🐉');
ERROR 1366 (HY000): Incorrect string value: '\xF0\x9F\x90\x89' for column 'val' at row 1
mysql> SET Names utf8mb4;
Query OK, 0 rows affected (0,00 sec)
mysql> INSERT INTO Storage VALUES('Dragon', '🐉');
Query OK, 1 row affected (0,10 sec)
mysql> UPDATE Storage SET p = '🐉';
Query OK, 1 row affected (0,20 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> SELECT * FROM Storage;
+------+------+
| p | val |
+------+------+
| 🐉 | 🐉 |
+------+------+
1 row in set (0,00 sec)
Комментариев нет:
Отправить комментарий