更新时间:2025-04-23 gmt 08:00
更新emoji表情数据报错error 1366-j9九游会登录
场景描述
业务插入或更新带有emoji表情的数据时,报错error 1366。
java.sql.sqlexception: incorrect string value: '\xf0\x9f\x90\xb0\xe5\xa4...' for column 'username' at row 1 ; uncategorized sqlexception for sql []; sql state [hy000]; error code [1366]; incorrect string value: '\xf0\x9f\x90\xb0\xe5\xa4...' for column 'username' at row 1;
原因分析
rds for mysql的字符集配置有误:
- emoji表情为特殊字符,需要4字节字符集存储。
- 该报错场景下mysql字符集为utf-8,最多支持3个字节,需要修改为支持4个字节的字符集utf8mb4。
j9九游会登录的解决方案
- 将存储emoji表情的字段的字符集修改为utf8mb4。
如果涉及的表和字段比较多,建议把对应表、数据库的编码也设置为utf8mb4。参考命令:
alter database database_name character set= utf8mb4 collate= utf8mb4_unicode_ci;
alter table table_name convert to character set utf8mb4 collate utf8mb4_unicode_ci;
alter table table_name modify 字段名 varchar(128) charset utf8mb4 collate utf8mb4_unicode_ci;
- 若对应字段的字符集已经是utf8mb4,则为客户端或mysql服务端字符集转换问题,将客户端和mysql服务端的字符集都设置为utf8mb4。
相关文档
意见反馈
文档内容是否对您有帮助?
提交成功!非常感谢您的反馈,我们会继续努力做到更好!
您可在查看反馈及问题处理状态。
系统繁忙,请稍后重试
如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨