让mysql支持emoji表情
什么是emoji
emoji就是表情符号 emoji的创造者是日本人栗田穰崇(Shigetaka Kurita)
在数据库的编码不为utf8mb4
,利用java mysql驱动保存含有表情符号的数据会出现异常java.sql.SQLException: Incorrect string value: '\xF0\x9F\x94\xA5' for column
mysql中存储emoji表情符号
以前做应用软件的时候 通常把mysql
的字符编码设置为utf-8
,但是这个编码却不支持emoji
表情 是因为utf-8
编码的一个字符最多只能存储3个字节,但一个emoji表情为4个字节,所以utf8不支持存储emoji表情。
mysql中的utf8mb4
却能支持emoji
表情符号 所以我们只需要更改mysql的数据库编码格式为utf8mb4
就能支持了。当然了表和字段也需要是这个编码的,在不手动设置表/字段编码的情况下,会默认继承数据库的编码格式。如果手动修改为字段或者表的编码 也需要手动把表和字段修改为utf8mb4
物理机安装的数据库数据字符编码修改方式
修改mysql
的配置文件/etc/mysql/my.cnf
并重启数据库 如果是编译安装 有可能不是这个目录噢~
[mysql] default-character- set =utf8mb4 |
云数据库 如阿里云的RDS 修改数据库编码方式
找到指定库的参数设置中找到character_set_server
修改为utf8mb4
并重启数据库
客户端驱动连接的URL
jdbc:mysql: //rr-xxxxx40 .mysql.rds.aliyuncs.com:3306 /db_test ?useUnicode= true &zeroDateTimeBehavior=convertToNull&characterEncoding=utf-8 |
这样就能在mysql
中存储emoji
表情符号了,utf8mb4
是utf-8
的超集 意味着反正utf8mb4
也能兼容utf-8
在不考虑存储大小的情况下 可以直接把库设置为utf8mb4
以免后续烦恼。
当前测试的数据版本为RDS mysql 5.6.16
JAVA驱动版本为5.1.30
转载请注明出处。
作者:peachyy
出处:http://www.cnblogs.com/peachyy/
出处:https://peachyy.gitee.io/
出处:https://peachyy.github.io/
公众号:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!