300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 带表情字符插入mysql字段报错问题处理 Incorrect string value: ‘\xF0\xA5\

带表情字符插入mysql字段报错问题处理 Incorrect string value: ‘\xF0\xA5\

时间:2019-08-18 20:08:16

相关推荐

带表情字符插入mysql字段报错问题处理  Incorrect string value: ‘\xF0\xA5\

今天在处理数据的时候出现这个错误

Incorrect string value: '\xF0\xA5\x8C\x93\xE5\x85...' for column 'nickName' at row 126; nested exception is java.sql.SQLException: Incorrect string value: '\xF0\xA5\x8C\x93\xE5\x85...' for column 'nickName' at row 126

在网上搜了几个答案,告知的原因是UTF-8编码有可能是两个、三个、四个字节。Emoji表情是4个字节,而MySQL的utf8编码最多3个字节,所以数据插不进去。

解决方案:将编码从utf8转换成utf8mb4。

这里一定要注意这个细节,我在解决的时候就出现了这个问题,自己也没注意到:就是在设置表的字符集后同时也要设置对应插入列的字符集

具体修改的sql如下所示:

Alter table `my_test`.`t_user_info`charset=utf8mb4Alter table `my_test`.`t_user_info`change `nickName` `nickName` varchar(32) CHARSET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '昵称'

如果问题还未解决,保证参数设置如下所示,我的mysql配置信息这样问题就解决了。

SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';

确保这个配置项:character-set-server=utf8mb4

带表情字符插入mysql字段报错问题处理 Incorrect string value: ‘\xF0\xA5\x8C\x93\xE5\x85...‘ for column ‘nickName‘

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。