微信接口获取用户昵称保存到数据库mysql中为空数据(空白)解决方法

微信昵称mysql utf8 mb4空白

因为:微信昵称中包含emoji表情标签,某些标签是使用了4字节编码的UTF8。

而大多数MySQL数据库现在使用的是3字节UTF8编码,这样会导致保存为空,且不会提示失败。

解决方法:

方案一:升级到MySQL5.5+版本,支持utf8mb4编码格式,然后执行下面的变更语句:

ALTER TABLE 表名 CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;

这样可以完整保存用户昵称,但系统升级风险较大,需要多方面测试。

方案二:另外一个方法更容易,就是去除非3字节的特殊符号,

$nickname = preg_replace('/[\x{10000}-\x{10FFFF}]/u', '', $nickname);

缺点是这会导致读取显示的时候少了那些漂亮的图标。

本文由 Easy 第一时间收藏到GET,原文来自 → blog.xiguajun.com

「GetParty」

关注微信号,推送好文章

微信中长按图片即可关注

更多精选文章

评论
微博一键登入