下载文件,文件名乱码具体代码解决方案

2018/12/9 来源:www.arpun.com 作者:小白

文件下载时乱码有两种情况:

1, 下载时中文文件名乱码

2, 下载时因为路径中包含中文文件名乱码, 提示找不到文件

解决方法见下面部分代码

private void downloadWithXls(String fileName,HttpServletResponse response,XlsTemplateBuilder builder){
 response.setContentType("application/x-download;charset=utf-8");
 try {
 fileName=URLEncoder.encode(fileName, "utf-8").replaceAll("\\+", "%20").replaceAll("%28", "\\(").replaceAll("%29", "\\)").replaceAll("%3B", ";").replaceAll("%40", "@").replaceAll("%23", "\\#").replaceAll("%26", "\\&");;
 fileName+=".xls";
 } catch (UnsupportedEncodingException e1) {
 logger.error(e1.getMessage(),e1.fillInStackTrace());
 }
 response.addHeader("Content-Disposition","attachment;filename*=utf-8'zh_cn'" + fileName);
OutputStream outputStream;
 try {
 outputStream = response.getOutputStream();
 builder.write(outputStream);
 } catch (IOException e) {
 logger.error(e.getMessage(),e.fillInStackTrace());
 }
}
 

网友评论
评论(...
全部评论