解决SQLException: Incorrect string value: ‘\\xF0\\xA7\\x99\\x95\\xE6\\xB2...‘ for column ‘xxx‘ 问题


在使用 MySQL 数据库时,你可能会遇到类似如下的错误提示:
nested exception is java.sql.SQLException: Incorrect string value: '\xF0\xA7\x99\x95\xE6\xB2...' for column 'xxx' at row 1" 。这通常是由于数据库字符集设置不当导致的。下面是一些解决方法。

数据库层面修改字符集

执行以下命令修改数据库的字符集为 utf8mb4

ALTER DATABASE [database_name] CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;

表层面修改字符集

执行以下命令修改表的字符集为 utf8mb4

ALTER TABLE [table_name] CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

字段层面修改字符集

执行以下命令修改字段的字符集为 utf8mb4

ALTER TABLE [table_name] CHANGE [column_name] [column_name] VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

JDBC 连接字符串中指定字符集

在 JDBC 连接字符串中显式指定字符集为 utf8mb4,例如:

jdbc:mysql://localhost:3306/your_database?useUnicode=true&characterEncoding=utf8mb4

修改 MySQL 配置文件

找到 MySQL 的配置文件 my.cnfmy.ini,修改以下字符集相关配置为 utf8mb4

[mysqld]
default-character-set=utf8mb4
character-set-server=utf8mb4

修改完成后,重启 MySQL 服务以使更改生效。如果问题仍未解决,建议检查应用程序代码中对字符串处理的逻辑,确保所有涉及数据库操作的地方都正确设置了字符集。同时,检查数据库中已有数据的正确性,可能存在部分数据已经损坏或不符合新的字符集要求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java皇帝

有帮助就赏点吧,博主点杯水喝喝

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值