最近遇到一个问题,在微信受权获取用户信息的时候,因为微信昵称(nickName)是表情,没法存入数据库。mysql
查其缘由,原来是由于数据库的编码格式不正确,个人是utf-8 改为utf8mb4就能够了。sql
其实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='用户会员表';spa