在java web工程中有需要从URL上下载文件到指定路径中,使用过程中发现下载中文附件时 本地执行是正常的 上传服务器后中文附件无法下载
解决方法为:
logger.info("url: " + url);
//20160318 防止中文附件下载出错
int index = url.lastIndexOf("/");
String fileName = getFileNameFromUrl(url);
/**Tomcat中的编码也需要改成UTF-8
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8"/>
*/
url = url.substring(0, index) + "/" + URLEncoder.encode(fileName,"utf-8");
URL httpurl = new URL(url);
File f = new File(dir + fileName);
FileUtils.copyURLToFile(httpurl, f);