您的位置:首页 > 移动开发 > 微信开发

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

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;
}


取出的时候再转码
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: