Error querying database. Cause: java.sql.SQLException: Incorrect string value: '\xE5\xAD\xA6\xE9\x9

关于问题:Error querying database. Cause: java.sql.SQLException: Incorrect string value: ‘\xE5\xAD\xA6\xE9\x99\xA2…’ for column ‘file_name’ at row 1

java中上传中文文件名的文件时出现错误: 导致文件名乱码,下载下来后文件名乱码,
解决方法:在文件 application.proprtties中**spring.datasource.url=改为spring.datasource.url=jdbc:mysql://localhost:3306/student?serverTimezone=GMT%2B8&characterEncoding=utf8,在文件上传函数中加入:(加粗)
try {
List items = upload.parseRequest(request);
System.out.println("UploadFile, items size: " + items.size());
for(FileItem item : items) {
if(!item.isFormField()){
file_id = getUUID();
String fullFilePath = fs_dir + File.separator + file_id;
item.write(new File(fullFilePath));
resp.file_id = file_id;
} else {
params.put(item.getFieldName(), item.getString(“UTF-8”));
}
}
然后还是不行,文件名直接不存入数据库:错误提示:Error querying database. Cause: java.sql.SQLException: Incorrect string value: ‘\xE5\xAD\xA6\xE9\x99\xA2…’ for column ‘file_name’ at row 1

在这里插入图片描述
通过网上查资料发现,是数据库出了问题:
原因:由于默认情况下,mysql的字符集是latin1(ISO_8859_1),包含库、表、字 段,即使建表时指定编码格式也会失效
解决办法:

1.先查看库、表、表字符字段的编码格式

SHOW CREATE DATABASE kepler; //查看库的字符集
SHOW CREATE TABLE kepler.statis;//查看表的字符集
SHOW FULL COLUMNS FROM kepler.statis; //查看字段编码

2.修改库、表、字符字段的编码

ALTER DATABASE kepler DEFAULT CHARACTER SET utf8; //修改库的字符集
ALTER TABLE kepler.statis CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci; //修改表以及字符字段的字符集
(我的是直接修改就可以了)

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值