您的位置:首页 > 数据库 > > 正文

mysql支持存储表情(MySQL如何插入Emoji表情)

更多 时间:2022-01-25 00:03:04 类别:数据库 浏览量:410

mysql支持存储表情

MySQL如何插入Emoji表情

前言

今天在设计开源项目的反馈信息表时遇到了emoji表情插入失败的问题,网上找了很多解决方案,答案五花八门,没找到好使的。

经过一番折腾后,终于成功插入了emoji表情,本文就跟大家分享下我的实现过程,欢迎各位感兴趣的开发者阅读本文。

写在前面

我的服务器是mac系统,mysql使用brew安装的,windows/linux它的配置文件位置可能有些不一样,具体根据真实情况而定。

先跟大家看下它的报错信息:

  • ?
  • 1
  • 2
  • 3
  • chat_system> update chat_system.feedback t set t.comments = '反馈信息测试' where t.id = 1
  • [2020-12-01 21:36:08] [hy000][1366] incorrect string value: '' for column 'comments' at row 1
  • [2020-12-01 21:36:08] [hy000][1366] incorrect string value: '' for column 'comments' at row 1
  • mysql支持存储表情(MySQL如何插入Emoji表情)

    实现思路

    因为数据库默认是utf-8编码格式,普通的字符串占位3个字节而表情占位4字节,此时utf-8就不够用了,需要采用utf8mb4字符集就能解决这个问题了。

    注意:utf8mb4字符集要求数据库版本高于5.5.3。

    那么,我们要做的事情如下所示:

    • 修改mysql配置文件,设置其编码格式
    • 修改数据库字符集编码
    • 修改数据库表字符集编码

    实现过程

    mysql默认读取配置的顺序为:/etc/my.cnf、/etc/mysql/my.cnf、/usr/local/etc/my.cnf、~/.my.cnf,如果对应目录下不存在这些配置文件,则需要自己新建一个。

    • 修改数据库配置文件my.cnf,我的文件位置在: /usr/local/etc下,添加下述代码
  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • [mysqld]
  • character-set-server = utf8mb4
  • collation-server = utf8mb4_unicode_ci
  • init_connect = 'set names utf8mb4'
  • character-set-client-handshake = false
  • [client]
  • default-character-set=utf8mb4
  • [mysql]
  • default-character-set=utf8mb4
    • 修改数据库字符集编码,登录mysql后执行下述sql语句。
  • ?
  • 1
  • 2
  • # 设置数据库字符集编码,chat_system为数据库名称,根据自己的实际情况而来
  • alter database chat_system character set utf8mb4 collate utf8mb4_unicode_ci;
    • 修改数据库表的字符集编码,登录mysql后执行下述sql语句。
  • ?
  • 1
  • 2
  • # 设置数据库表字符集编码,chat_system.feedback_comment_reply为我的数据库下对应的表名称,根据自己的实际情况而来
  • alter table chat_system.feedback_comment_reply convert to character set utf8mb4 collate utf8mb4_unicode_ci;
  • 完成上述操作后,我们来看看是否修改成功,登录mysql后执行下述sql语句。

  • ?
  • 1
  • show variables where variable_name like 'character%' or variable_name like 'collation%';
  • 显示下属信息,则表示我们已经修改完成了。

    mysql支持存储表情(MySQL如何插入Emoji表情)

    测试用例

    我们来往插入一个emoji表情来测试下:

  • ?
  • 1
  • update chat_system.feedback t set t.comments = '反馈信息测试' where t.id = 1;
  • 如下所示,没有报错,插入成功。

    mysql支持存储表情(MySQL如何插入Emoji表情)

    我们用datagrap查看下数据库表中的数据,如下所示,它显示了一个?,应该是软件无法识别。

    mysql支持存储表情(MySQL如何插入Emoji表情)

    讲道理,应该是插入成功了,我们用postman请求接口试下,成功显示出来了。

    mysql支持存储表情(MySQL如何插入Emoji表情)

    以上就是MySQL如何插入Emoji表情的详细内容,更多关于MySQL 插入Emoji表情的资料请关注开心学习网其它相关文章!

    原文链接:https://juejin.cn/post/6901289963875368967

    标签:mysql 表情 emoji