码迷,mamicode.com
首页 > 数据库 > 详细

mysql 插入emoji表情的时候报错问题。

时间:2016-08-10 01:14:58      阅读:400      评论:0      收藏:0      [点我收藏+]

标签: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


2.前端JS校验过滤掉emoji表情

下面主要粘下过滤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‘), ‘‘));
}


mysql 插入emoji表情的时候报错问题。

标签:mysql 插入emoji表情的时候报错问题。

原文地址:http://ycgit.blog.51cto.com/8590215/1836176

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!