饿虎岗资源网 Design By www.oxmxm.com

前言

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

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

写在前面

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

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

chat_system> UPDATE chat_system.feedback t SET t.comments = '反馈信息测试"text-align: center">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下,添加下述代码
[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语句。
# 设置数据库字符集编码,chat_system为数据库名称,根据自己的实际情况而来
ALTER DATABASE chat_system CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
  • 修改数据库表的字符集编码,登录mysql后执行下述sql语句。
# 设置数据库表字符集编码,chat_system.feedback_comment_reply为我的数据库下对应的表名称,根据自己的实际情况而来
ALTER TABLE chat_system.feedback_comment_reply CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

完成上述操作后,我们来看看是否修改成功,登录mysql后执行下述sql语句。

SHOW VARIABLES WHERE Variable_name LIKE 'character%' OR Variable_name LIKE 'collation%';

显示下属信息,则表示我们已经修改完成了。

MySQL如何插入Emoji表情

测试用例

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

UPDATE chat_system.feedback t SET t.comments = '反馈信息测试"text-align: center">MySQL如何插入Emoji表情

我们用dataGrap查看下数据库表中的数据,如下所示,它显示了一个"text-align: center">MySQL如何插入Emoji表情

讲道理,应该是插入成功了,我们用postman请求接口试下,成功显示出来了"text-align: center">MySQL如何插入Emoji表情

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

饿虎岗资源网 Design By www.oxmxm.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
饿虎岗资源网 Design By www.oxmxm.com

P70系列延期,华为新旗舰将在下月发布

3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。

而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?

根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。