php 解决微信昵称emoji表情插入MySQL报错
2016-05-13 14:30
357 查看
在PHP接受到微信用户昵称入库的时候报错
原因:utf-8 最大3个字节,而emoji占4个字节
解决办法:
1.修改mysql 数据库的字符集,改为utf8mb4,但是前提是MySQL的版本需要5.5以上
由于我用的MySQL还是5.0的,所以用其他方法
2.用PHP过滤emoji
取出的时候再转码
原因:utf-8 最大3个字节,而emoji占4个字节
解决办法:
1.修改mysql 数据库的字符集,改为utf8mb4,但是前提是MySQL的版本需要5.5以上
由于我用的MySQL还是5.0的,所以用其他方法
2.用PHP过滤emoji
private function emoji_encode($nickname){ $strEncode = ''; $length = mb_strlen($nickname,'utf-8'); for ($i=0; $i < $length; $i++) { $_tmpStr = mb_substr($nickname,$i,1,'utf-8'); if(strlen($_tmpStr) >= 4){ $strEncode .= '[[EMOJI:'.rawurlencode($_tmpStr).']]'; }else{ $strEncode .= $_tmpStr; } } return $strEncode; }
取出的时候再转码
相关文章推荐
- 微信第三方网页授权关于回调域名的问题
- 微信第三方开发,上传永久素材
- 微信企业号实战项目_校信通
- js判断当前访问客户端是ios或安卓或微信
- php仿微信红包分配算法的实现方法
- 微信登陆,用到的。
- 在线支付文章索引(支付宝_微信_银联)
- Android -- FragmentTabHost实现微信底部切换
- Android仿微信朋友圈图片查看器
- 福建地震信息服务微信公众号开通了
- 微信开发 JS接口安全域名修改
- Android集成微信支付
- 微信开发token验证失败
- 微信支付Notice: Use of undefined constant CURLOP_TIMEOUT - assumed 'CURLOP_TIMEOUT' in
- 微信摇一摇周边--获取access_token
- 微擎密码忘记了如何篡改为指定密码
- php仿微信红包分配算法的实现方法
- javascript第一个小程序
- OAuth2.0协议&第三方登录(微信,QQ,微博)
- 微信公众号运营手册