首页 > 代码库 > Spring文件名乱码的方法

Spring文件名乱码的方法

 

 J2EE, Spring 2,080 浏览 添加评论
192012

 

以下是原创作品,转载请标明出处http://lvjava.com/?p=269

直接上在Spring中下载Excel文件的例子,重点是包含有utf8的那一句,将ISO-8859-1编码格式改为utf8格式的。
对于IE浏览器必须使用URLEncoder转换,不然下载的时候会报错。
其中fileName = fileName.replaceAll(“\\+”, “%20″);可以修正URLEncoder将空格转换成+号的BUG。

	@RequestMapping(method = RequestMethod.GET, params="action=exportExcel")	public void envExportExcel(HttpServletRequest request, HttpServletResponse response) throws IOException {		response.setContentType("application/vnd.ms-excel");//设置输出格式 Excel 头信息.		String fileName = "测试文件名";		String agent = request.getHeader("USER-AGENT");		if(agent != null && agent.indexOf("MSIE") != -1) {			fileName = URLEncoder.encode(fileName, "UTF8");			fileName = fileName.replaceAll("\\+", "%20");		} else {			fileName = new String(fileName.getBytes("UTF-8"), "ISO8859-1");		}		response.setHeader("Content-Disposition","attachment; filename=\"" + fileName + ".xls" + "\";target=_blank");		OutputStream os = response.getOutputStream();		HSSFWorkbook wb = service.exportExcelFile();		wb.write(os);		os.close();		response.flushBuffer();	}

 yanglynn 发表于 4:58 下午  标签:J2EE, Spring, 文件下载

 

 

发现IE10以上if(agent != null && agent.indexOf("MSIE") != -1) 判断为火狐,兼容模式没有这个问题

Spring文件名乱码的方法