mysql支持存储表情(MySQL如何插入Emoji表情)
mysql支持存储表情
MySQL如何插入Emoji表情前言
今天在设计开源项目的反馈信息表时遇到了emoji表情插入失败的问题,网上找了很多解决方案,答案五花八门,没找到好使的。
经过一番折腾后,终于成功插入了emoji表情,本文就跟大家分享下我的实现过程,欢迎各位感兴趣的开发者阅读本文。
写在前面
我的服务器是mac系统,mysql使用brew安装的,windows/linux它的配置文件位置可能有些不一样,具体根据真实情况而定。
先跟大家看下它的报错信息:
|
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 |
实现思路
因为数据库默认是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%' ; |
显示下属信息,则表示我们已经修改完成了。
测试用例
我们来往插入一个emoji表情来测试下:
|
update chat_system.feedback t set t.comments = '反馈信息测试' where t.id = 1; |
如下所示,没有报错,插入成功。
我们用datagrap查看下数据库表中的数据,如下所示,它显示了一个?,应该是软件无法识别。
讲道理,应该是插入成功了,我们用postman请求接口试下,成功显示出来了。
以上就是MySQL如何插入Emoji表情的详细内容,更多关于MySQL 插入Emoji表情的资料请关注开心学习网其它相关文章!
原文链接:https://juejin.cn/post/6901289963875368967
- mysql索引原理及使用(再有人问你MySQL索引原理,就把这篇文章甩给他!)
- mysql索引原理及调优(mysql高级学习之索引的优劣势及规则使用)
- mysql快速添加百万条记录(Mysql快速插入千万条数据的实战教程)
- idea的mysql如何连接(在IntelliJ IDEA中使用Java连接MySQL数据库的方法详解)
- mysql数据类型及用法(MySQL数据库重命名的快速且安全方法3种)
- mysql获取随机数(MySQL 生成随机数字、字符串、日期、验证码及 UUID的方法)
- mysql千万级别数据查询优化(mysql千万级数据量根据索引优化查询速度的实现)
- mysql left join索引怎么使用(详解mysql 使用left join添加where条件的问题分析)
- mysql主从复制步骤(MySQL8 主从复制踩坑指南)
- mysql 用户权限配置(详解MySQL 用户权限管理)
- mysql内部有4种常见日志(MySQL 慢日志相关知识总结)
- mysql客户端怎么运行程序(MySQL 如何连接对应的客户端进程)
- mysql备份工具怎么选(MySQL使用Xtrabackup备份流程详解)
- 怎么查看mysql运行日志(通过Query Profiler查看MySQL语句运行时间的操作方法)
- mysql把重复数据删掉(mysql查找删除重复数据并只保留一条实例详解)
- mysql命令输入行在哪(MySQL命令行操作时的编码问题详解)
- 中国留学生都是富二代吗()
- 我们现在吃的苹果是哪里来的 原来现代苹果引入中国仅有一百多年(我们现在吃的苹果是哪里来的)
- 买绿宝不能只挑黄绿色 菜农教你3招挑,个个皮薄肉脆,香甜爆汁(买绿宝不能只挑黄绿色)
- 大果肉搭配薄瓜皮, 绿宝 脆甜爽口,不愧是甜瓜中的 佼佼者(大果肉搭配薄瓜皮)
- 河南尉氏县因地制宜发展果蔬种植 水坡镇绿宝甜瓜变 金瓜(河南尉氏县因地制宜发展果蔬种植)
- 谢广坤,你这么欺负谢腾飞,良心不会痛吗(你这么欺负谢腾飞)
热门推荐
- thinkphp5单例原理(Thinkphp5框架简单实现钩子Hook行为的方法示例)
- vue3.0路线图(Vue3.0 自己实现放大镜效果案例讲解)
- canvas图片显示报错(html2canvas生成的图片偏移不完整的解决方法)
- sql注入防范有哪些方法(如何有效防止sql注入的方法)
- php开发模式有哪些(PHP设计模式之简单工厂和工厂模式实例分析)
- django后台运行命令(Django框架实现的普通登录案例使用POST方法)
- CSS font-family
- python后端生成的pdf文件(Python实现截取PDF文件中的几页代码实例)
- sql中去除重复记录的关键字(sqlserver查询去掉重复数据的实现)
- 如何让mysql强制设置复杂的密码
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9