时间:2021-05-02
前言
今天在设计开源项目的反馈信息表时遇到了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
实现思路
因为数据库默认是utf-8编码格式,普通的字符串占位3个字节而表情占位4字节,此时utf-8就不够用了,需要采用utf8mb4字符集就能解决这个问题了。
注意:utf8mb4字符集要求数据库版本高于5.5.3。
那么,我们要做的事情如下所示:
实现过程
mysql默认读取配置的顺序为:/etc/my.cnf、/etc/mysql/my.cnf、/usr/local/etc/my.cnf、~/.my.cnf,如果对应目录下不存在这些配置文件,则需要自己新建一个。
完成上述操作后,我们来看看是否修改成功,登录mysql后执行下述sql语句。
? 1 show variables where variable_name like 'character%' or variable_name like 'collation%';显示下属信息,则表示我们已经修改完成了。
测试用例
我们来往插入一个emoji表情来测试下:
? 1 update chat_system.feedback t set t.comments = '反馈信息测试' where t.id = 1;如下所示,没有报错,插入成功。
我们用datagrap查看下数据库表中的数据,如下所示,它显示了一个?,应该是软件无法识别。
讲道理,应该是插入成功了,我们用postman请求接口试下,成功显示出来了。
以上就是MySQL如何插入Emoji表情的详细内容,更多关于MySQL 插入Emoji表情的资料请关注服务器之家其它相关文章!
原文链接:https://juejin.cn/post/6901289963875368967
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
失败场景用户昵称中存在emoji表情,调用jdbc往mysql数据库插入的时候抛出异常java.sql.SQLException:Incorrectstring
Mysql的utf8编码最多3个字节,而Emoji表情或者某些特殊字符是4个字节。因此会导致带有表情的昵称插入数据库时出错。只要修改MySQL的编码即可,解决方
本文实例讲述了MySQL无法存储Emoji表情问题的解决方法。分享给大家供大家参考,具体如下:数据插入的时候报错:1366-Incorrectstringval
本文实例讲述了MySQL无法存储emoji表情解决方案。分享给大家供大家参考,具体如下:今天学习爬虫爬伯乐在线的文章,由于在文章中有emoji表情,导致有emo
近日,光速手机输入法Android平台更新至1.1.0版本,本次升级主要新增了emoji表情和夜间皮肤功能。新增emoji表情Emoji是目前非常流行的一种表情