昨天写一个 mongodb 导数据到 MySQL 的程序,写入MySQL的时候报错了:Error 1366: Incorrect string value: '\xF0\x9F\x98\x83\xE4\xB8...' for column 'requestBody' at row 17790

这可能是插入的文本中有 4 字节的 unicode 字符,文本中有 Emoji 表情导致的。

我查看了一下 requestBody 字段,发现编码是 utf8,根据文章 为什么 mysql 要使用 utf8mb4 而非 utf8编码 说明,将字段的编码修改为 utf8mb4,重新运行后仍然没有解决。

后来查看了程序的 MySQL 连接参数,发现编码还是 utf8 :charset=utf8,将连接参数修改后 charset=utf8mb4,问题解决。