在PHP接受到微信用戶昵稱入庫的時候報錯

原因:utf-8 最大3個字節,而emoji占4個字節
解決辦法:
1.修改mysql 數據庫的字符集,改為utf8mb4,但是前提是MySQL的版本需要5.5以上
由於我用的MySQL還是5.0的,所以用其他方法
2.用PHP過濾emoji
1 private function emoji_encode($nickname){ 2 $strEncode = ''; 3 $length = mb_strlen($nickname,'utf-8'); 4 for ($i=0; $i < $length; $i++) { 5 $_tmpStr = mb_substr($nickname,$i,1,'utf-8'); 6 if(strlen($_tmpStr) >= 4){ 7 $strEncode .= '[[EMOJI:'.rawurlencode($_tmpStr).']]'; 8 }else{ 9 $strEncode .= $_tmpStr; 10 } 11 } 12 return $strEncode; 13 }
取出的時候再轉碼
