php 解決微信昵稱emoji表情插入MySQL報錯


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

取出的時候再轉碼

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM