INSERT INTO auto_message (id, message, ext) VALUES
(1, '你好呀', 'test'),
在使用以上sql命令给数据表插入一条带emoji的数据时报错:
ERROR 1366 (HY000): Incorrect string value: '\xF0\x9F\xA4\xAB' for column 'message' at row 1
最开始,我发现复制的表情,粘贴到终端后变为了“\U+1F60A”
认为是终端的编码字符集有问题,各种设置后无效。
最后解决办法很简单,在连接mysql的命令上加上--default-character-set=utf8mb4
mysql -u your_username -p --default-character-set=utf8mb4
虽然被粘贴到终端后还是会被转义,但可以正常插入,查询结果也是正确的。