做微信登录,保存微信昵称的时候冒了一个错误:
java.sql.SQLException: Incorrect string value: '\xF0\x9F\x91\x8C\xF0\x9F...' for column 'wechat_nickname' at row 1
找到原因是:
微信昵称中包含emoji表情,而数据库mysql的编码是utf-8,并不支持emoji
解决方法:
将编码设置为utf8mb4
其他坑:
在测试环境修改数据库字段编码就可以,但是在阿里云rds数据库需要修改库编码、表编码和字段编码
拓展:
utf8mb4是utf8的超集,所以能向下兼容utf8,不用担心数据丢失问题