前端处理支持emoji表情

忙于产品2.0需求开发,有一段时间没总结了。

1.0上线后,用户反馈发了emoji表情之后显示不出来,所以在2.0中着重解决了这一问题。

为什么不支持emoji表情呢?

究其原因是数据库的版本低,前后端编码不一致导致的。数据库使用的是utf8编码,普通的字符串或者表情都是占位3个字节,所以utf8足够用了,但是移动端的表情符号占位是4个字节,普通的utf8就不够用了,如果mysql数据库是5.5以上版本,采用utf8mb4 字符集,就可以支持。但是,数据库是不允许随意更改的,况且在大公司可能涉及到多个产品线。

解决方案:

转码!前后端都可以解决。

前端解决的方案:在提交数据时,通过正则获取所有的emoji表情,将其转成 base64 ,然后提交给后台,后台不需要做任何操作,当请求数据时再原封不动的返给前端,前端对数据进行过滤,转换成表情。

后端的解决思路其实也是一样的。存数据库之前做处理,取出来返给前端之前再做处理。

完整代码:




    
    
    
    前端处理支持emoji表情



    

测试

结果

你可能感兴趣的:(前端处理支持emoji表情)