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

1、問題現象前端

    保存微信用戶暱稱到數據庫,ios用戶的暱稱包含表情,插入數據庫出錯。mysql


2、分析ios

    使用JS過濾emoji表情的主要緣由:input標籤中輸入emoji表情,提交表單後插入數據庫報錯。
緣由是由於UTF-8編碼有多是兩個、三個、四個字節。Emoji表情是4個字節,而MySQL的utf8編碼最多3個字節,因此數據插不進去。 git


3、解決方案sql


1.將Mysql的編碼從utf8轉換成utf8mb4 數據庫

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


2.前端JS校驗過濾掉emoji表情ide

下面主要粘下過濾emoji的JS代碼編碼

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'), ''));
}
相關文章
相關標籤/搜索