MySQL解决字符串含有emoji表情无法插入的解决办法

MySQL 解决 移动端 emoji表情 的方法

  • 业务问题
    • 解决思路
    • 实现效果图
    • 实现方法步骤

业务问题

这两天在做微信小程序相关的模块, emoji emoji为移动端带有的4个字符串的表情,而通常来讲数据库设计字符集一般为uft-8格式,对于4个字符串的无法兼容,所以会出现表情无法插入数据的错误.Error updating database. Cause: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x91\x91' for column 'nickname' at row 1.

解决思路

  1. 修改数据库字符编码集,由utf8格式 调整为utf8bm4格式,因为utf8
  2. 将emoji表情转化为utf8格式存入数据库,取出来显示的时候转换为utf8bm4格式显示(解决办法链接 )

实现效果图

可以看到前端传入的参数表情已经存入数据库

实现方法步骤

  1. 修改mysql数据库my.ini配置文件
    character-set-server=utf8 改为character-set-server=utf8mb4
    MySQL解决字符串含有emoji表情无法插入的解决办法_第1张图片

  2. 修改数据库结构由utf8改为utf8mb4
    MySQL解决字符串含有emoji表情无法插入的解决办法_第2张图片

  3. 修改数据库 对应表结构字段 格式由utf8改为utf8mb4
    MySQL解决字符串含有emoji表情无法插入的解决办法_第3张图片

经过上面三个步骤,即可完成移动端带表情字符正常拆入数据库的操作,网上有些教程多个mysql加载驱动包字符集的操作,这里经过实际测试 不改也没啥问题,主要问题是由于数据库utf8mb4兼容utf8格式,说白了utf8mb4是utf8的子集,包含utf8的特性,但是扩展了能够支持4个字节.

参考文章:MySQL 解决 emoji表情 的方法,使用utf8mb4 字符集(4字节 UTF-8 Unicode 编码)

你可能感兴趣的:(数据库)