文件下载异常处理

现象:前段时间编写了一个文件下载的模块,在本地windows运行没有任何问题,文件都可以正常下载,但是当程序部署到linux生产环境后进行测试后发现中文文件名文件无法下载。

解决过程:

1、使用xftp工具查看文件夹发现文件存在的,百思不得解之下查看jdk源码是去掉用file.exists区判断,因此写一段程序去测试,发现好像是编码问题,但是是什么地方的编码出现问题了呢?

2、通过不断更改程序和数据库的编码都无果,后面询问同事,通过他的一段话启发了我,文件下载判断文件是否存在无非是通过文件路径和服务器上的文件路径进行比较,如果程序没问题,是不是服务器上文件路径的编码有问题呢?

3、通过一番求证,更改远程xftp的编码发现确实是服务器上的文件编码不对,因此更改文件名的编码为服务器上文件名的编码后发现下载正常了

代码(UTF-8)

不一致

文件服务器(GBK)




代码(UTF-8)

转化为gbk

一致后下载正常

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值