JAVA URL copyURLToFile下载文件中文名处理

做了一个从URL下载文件的功能 刚开始用没问题 后来发现中文名有问题

原先代码:

String url="http://xxxxcom/userfiles/file/20181010//5596d00cfa759abf48a88dde17b9d07d/文档中心数据建模.mwb"
URL httpUrl = new URL(url);
 String fileName= httpUrl.getFile();
  FileUtils.copyURLToFile(httpUrl, new File(savePath + fileName));

//上面的中文名是不行 当然这里如果前端传过来的可以encodeURI编码一下
//后台我们编码这样整个的文件 new String(str,“utf-8”) 类似几种方式都会把整个的url编码掉其中 ://等也会处理
修改后

 URL httpUrl = new URL(UriUtils.encodePath(url, "UTF-8"));
  String fileName= httpUrl.getFile();
  FileUtils.copyURLToFile(httpUrl, new File(savePath + fileName));

UriUtils.encodePath(url, “UTF-8”))
//这里引用的spring包下的工具类只会对我们的文档中心数据建模进行编码处理所以变成这样样子

http://xxxxcom/userfiles/file/20181010//5596d00cfa759abf48a88dde17b9d07d/%E6%96%87%E6%A1%A3%E4%B8%AD%E5%BF%83%E6%95%B0%E6%8D%AE%E5%BB%BA%E6%A8%A1.mwb%20

不是什么毛病 自己处理可能要根据规则处理一下 这里直接有现成的用起来比较方便 有遇到的可以这样用了

你可能感兴趣的:(填坑)