千家信息网

mysql中插入emoji表情失败的原因与解决

发表于:2025-02-23 作者:千家信息网编辑
千家信息网最后更新 2025年02月23日,失败场景用户昵称中存在emoji表情,调用jdbc往mysql数据库插入的时候抛出异常 java.sql.SQLException: Incorrect string value: '\xF0\x9F
千家信息网最后更新 2025年02月23日mysql中插入emoji表情失败的原因与解决

失败场景

用户昵称中存在emoji表情,调用jdbc往mysql数据库插入的时候抛出异常 java.sql.SQLException: Incorrect string value: '\xF0\x9F\x90\x9B'

失败原因

mysql的utf8编码的一个字符最多3个字节,但是一个emoji表情为4个字节,所以utf8不支持存储emoji表情。但是utf8的超集utf8mb4一个字符最多能有4字节,所以能支持emoji表情的存储。

下面话不多说了,来一起看看详细的介绍吧

解决方案

一. 修改database、table、column字符集

修改database字符集

ALTER DATABASE 数据库名 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;

修改table字符集

ALTER TABLE 表名 CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

修改column字符集

ALTER TABLE 表名 CHANGE 字段名 字段名 该字段原来的数据类型 CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

以上三种可以根据自己的实际情况来选择修改;

二. 查看mysql配置变量

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

注意 character_set_server 这个变量的值是否等于 utf8mb4 ,如果不是那么看第三步。

三. 修改mysql配置文件

这边 mysql 是安装在 centos 下的,配置文件名称为 my.cnf ,路径按照自己安装的目录来。

vim /etc/my.cnf /etc/mysql/my.cnf

my.cnf

找到 character_set_server ,将其值设置为 utf8mb4 ,保存退出;试着重新 insert 看是否报错;如果报错可能需要重启下 mysql 服务

service mysqld restart

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。

字符 表情 字符集 字段 字节 数据 支持 配置 内容 变量 数据库 文件 存储 学习 原因 价值 场景 实际 就是 情况 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 虹口区咨询软件开发要多少钱 美食大战老鼠服务器时间表 苹果手机数据库修改 常用的桌面型数据库软件有哪些 开阔网络技术 数据库同名实例怎么删除 网络安全教育十点 最强蜗牛选择服务器 将爬取音乐评论数据到数据库 天津曙光服务器虚拟化设计服务器 莆田易趣网络技术有限公司 便携式录播一体机属于服务器范围 银河破坏者数据库 想开发可以搜索和录入的数据库 服务器设置mp4播放器 华为云服务器如何登录 采集的数据怎么上传到云服务器 连接数据库时报2003 计算机网络技术模拟测试卷一 蛇哥传奇4服务器 河北直销软件开发销软件 长沙市乐邦网络技术有限公司 数据库设计和管理系统 湖州公安网络安全要求 大理楠诺互联网科技有限公司 国家电网有限公司网络安全部 链接ftp服务器 自主学习软件开发 系统网络安全哪家强 网络安全宣传周巡展
0