General error: 1366 Incorrect string value: '\xF0\x9F\x90\xBD' for column 'nickName' at row 1

今天微信小程序获取用户信息的时候,突然了

General error: 1366 Incorrect string value: '\xF0\x9F\x90\xBD' for column 'nickName' at row 1

错误,查看的结果是,由于微信用户的名称包含了表情或者其他的特殊字符,这是因为:移动端的emoji表情符号是4个字节,而mysql的utf8编码最多3个字节,所以插入不进去。

解决方法:由于数据库已经建好了,有了大量正式数据,安全起见,我是通过转码的方式解决的,入库前json_encode一下,出库前json_decode一下。虽然略显繁琐,但是问题也能解决。