mysql 插入数据时,出现"\xF0\x9F\x8F\x80"这种情况的处理!

本文介绍了当在数据库中插入包含特殊表情符号的数据时遇到的错误,并提供了详细的解决方案,包括更改数据库表的编码格式为utf8mb4以及调整服务器连接数据库的URL配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

移动端使用表情提交时
报错为Caused by: org.hibernate.exception.GenericJDBCException: could not execute statement
Caused by: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x82' for column 'account_name' at row 1

我们知道设置数据库编码格式,表编码格式和字段编码格式的时候,一般设置为“utf-8”,这对于汉字来说足够了,在mysql中utf8占3个字节,但是对于移动端的特殊表情符号来说,三个字节是不够的,他需要四个字节。这个时候我们使用utf8就会出现‘\xF0\x9F\x8F\x80’的问题。

解决方法:
1 需要改数据库表的编码格式,将至修改为utf8mb4. mysql版本5.5.3之前支持utf8三个字节,
5.5.3之后支持utf8mb4四个字节。mysql -V 查看版本,如果版本过低,先升级。 
2.服务器连接数据库的url中不要有characterEncoding=utf-8。例如: 
url=jdbc:mysql://127.0.0.1:3306/xxx 
如果不修改这个编码格式,不起作用的。
SHOW FULL COLUMNS  FROM  user //查看字段字符集

set names utf8mb4//设计字符集

原文:http://m.blog.youkuaiyun.com/qingmulang/article/details/75141455
http://bbs.youkuaiyun.com/topics/390616203

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值