使用JS过滤emoji表情的主要原因:input标签中输入emoji表情,提交表单后插入数据库报错。
原因是因为UTF-8编码有可能是两个、三个、四个字节。Emoji表情是4个字节,而MySQL的utf8编码最多3个字节,所以数据插不进去。
于是找到两个解决方案:
1.将Mysql的编码从utf8转换成utf8mb4
2.前端JS校验过滤掉emoji表情
var ranges = [
'\ud83c[\udf00-\udfff]',
'\ud83d[\udc00-\ude4f]',
'\ud83d[\ude80-\udeff]'
];
var inputVal = $("#emoji_input").val();
inputVal = inputVal .replace(new RegExp(ranges.join('|'), 'g'), ''));
本文介绍了因Emoji表情导致数据库插入错误的问题,并提供了两种解决方法:一是调整MySQL编码为utf8mb4;二是使用前端JS代码过滤Emoji。此外,还给出了具体的JS实现代码。
7426

被折叠的 条评论
为什么被折叠?



