mysql中表情emoji保存和查询注意事项

通常APP或者小程序,都会存在用户通过输入和系统进行交互,新增、修改、搜索数据的时候都会存在用户输入表情的问题,如果没有处理好就会出现线上bug,还不容易发现

      移动端emoji表情的大小是4个字节(可以用专门的转码工具,将其转换为3字节存储),而一般在数据库设计的时候,初始化的字符集是utf8,占三个字节。当表情不做处理的时候存入或者读取数据库时,就会出现问题。知道原因之后,再解决这个问题就很好办了,解决方案有以下几种:

1、将emoji表情禁止输入:也就是说在前端页面控制,判断输入内容,如果是表情,则不让输入进去,从源头控制问题。弊端:不友好,禁止了用户的合理行为。

2、将emoji表情进行转码:转换为utf8格式的数据再存储,从过程去处理,也是没有问题的

3、设置数据库编码格式为utf8mb4格式:该编码为4个字节的utf8

  • 将存储用户行为数据的字段设置成这个格式,其他的字段格式不变
  • 将该表的编码格式设置为utf8mb4
  • 将数据库的编码格式设置为utf8mb4

在移动端互联网高度发展的现在,推荐使用第三种方法,可以提前避免很多兼容性问题,向下兼容utf8

弊端:mysql数据库版本不能低于5.5.3,低于的没有这个类型

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值