最近在爬取博客存入数据库时出现了这个问题,通过查找资料得以解决,做一些必要的笔记,一来是对自己学习的知识的巩固,二来对有同样问题的人有参考作用
出现原因
:当insert数据中有表情时发生。而这些表情是按照4个字节一个单位进行编码的,而我们使用的utf-8编码在mysql数据库中默认是按照3个字节一个单位进行编码的.
第一步:修改mysql的配置文件mysql/bin/my.ini, 添加
如下内容:
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
character-set-client-handshake=FALSE
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'
第二步:重启数据库
linux输入命令:service mysql restart
windows输入命令:net stop mysql 和 net start mysql
第三步:修改数据表的编码为utf8mb4
在改动的数据库那,执行查询语句:ALTER TABLE TABLE_NAME CONVERT TO CHARACTER SET utf8mb4;
第四步: 将数据库连接语句url中去掉characterEncoding;重启项目。
如有错误恳请指正,如有侵权请联系我删除
参考文章: 彻底解决:java.sql.SQLException: Incorrect string value: ‘\xF0\x9F\x92\x94’ for column ‘name’ at row 1
本文地址:https://blog.csdn.net/qq_39007083/article/details/107149641
如对本文有疑问, 点击进行留言回复!!
第三次学JAVA再学不好就吃翔(part88)--ArrayList嵌套ArrayList
使用ffmpeg视频切片并加密和视频AES-128加密后播放
JAVA程序设计:最长重复子串(LeetCode:1044)
LiveGBS国标GB/T28181云端录像分布式录像存储自动清理时移回看录像下载播放
网友评论