【记录】微信emoji表情存入数据库
最近遇到一个问题,在微信授权获取用户信息的时候,由于微信昵称(nickName)是表情,无法存入数据库。
查其原因,原来是因为数据库的编码格式不正确,我的是utf-8 改成utf8mb4就可以了。
其实utf-8是Mysql的一个Bug,此utf-8不是真正的我们熟知的UTF-8,mysql中的utf8最多只能支持3bytes长度的字符编码,对于一些需要占据4bytes的文字,mysql的utf8就不支持了,要使用utf8mb4才行。
在mysql中请大家忘记**utf8**,永远使用**utf8mb4**。避免以后采坑!!!
所以我在创建用户表时候是这么设置的
ENGINE=InnoDB AUTO_INCREMENT=10001 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT=\’用户会员表\’;