天天看點

mysql 插入emoji表情的時候報錯問題。(蘋果手機)

一、問題現象

    儲存微信使用者昵稱到資料庫,ios使用者的昵稱包含表情,插入資料庫出錯。

二、分析

    使用JS過濾emoji表情的主要原因:input标簽中輸入emoji表情,送出表單後插入資料庫報錯。

原因是因為UTF-8編碼有可能是兩個、三個、四個位元組。Emoji表情是4個位元組,而MySQL的utf8編碼最多3個位元組,是以資料插不進去。 

三、解決方案

1.将Mysql的編碼從utf8轉換成utf8mb4 

    Linux修改mysql編碼,參考另一篇文章:http://ycgit.blog.51cto.com/8590215/1783775

function filteremoji(){
    var ranges = [        
        '\ud83c[\udf00-\udfff]', 
        '\ud83d[\udc00-\ude4f]', 
        '\ud83d[\ude80-\udeff]'
    ];    
    var emojireg = $("#emoji_input").val();
    emojireg = emojireg .replace(new RegExp(ranges.join('|'), 'g'), ''));
}      

繼續閱讀