`

Spring MVC下载及下载时遇到IE下中文乱码问题解决

 
阅读更多
@Override
	public void export(HttpServletRequest request,
			HttpServletResponse response, List<Map<String, Object>> dataResult,
			String saveAsFileName) throws ServletException, UnsupportedEncodingException {
		response.setContentType("text/html;charset=utf-8");
		// 完美解决IE浏览器下载中文乱码的问题,兼容IE,Firefox,Chorme
		String agent = request.getHeader("User-Agent");
		boolean isMSIE = (agent != null && agent.indexOf("MSIE") != -1);
		String fileName = null;
		if (isMSIE) {
			fileName = URLEncoder.encode(saveAsFileName, "UTF-8");
		} else {
			fileName = new String(saveAsFileName.getBytes("UTF-8"),
					"ISO-8859-1");
		}

		BufferedOutputStream bos = null;
		try {
			byte[] data = exportReport(dataResult);
			long fileLength = data.length;
			response.addHeader("Content-Length", "" + fileLength);
			response.setContentType("application/octet-stream;charset=UTF-8");
			// response.setContentType("application/x-msdownload;");
			response.setHeader("Content-disposition", "attachment; filename="
					+ fileName + ".zip");
			response.setHeader("Content-Length", String.valueOf(fileLength));
			bos = new BufferedOutputStream(response.getOutputStream());
			bos.write(data);
			bos.flush();
		} catch (IOException e) {
			throw new ServletException(e.getMessage(), e);
		} finally {
			try {
				if (bos != null)
					bos.close();
			} catch (IOException e) {
				throw new ServletException(e.getMessage(), e);
			}
		}
	}

 

分享到:
评论

相关推荐

    Spring MVC的文件下载实例详解

    本文将深入解析如何在Spring MVC中实现文件下载功能,包括文件读取、响应头设置、以及如何处理不同浏览器的兼容性问题。 首先,文件下载的实现思路是将文件内容读取到内存中,通常使用字节数组来存储文件内容,再...

    FreeMarker整合Spring_3

    2. **浏览器兼容性**:支持IE6及以上版本以及Firefox 3及以上版本。 3. **服务器**:使用Tomcat 5.0.2.8或Tomcat 6作为Java EE服务器。 4. **集成开发环境(IDE)**:推荐使用Eclipse或MyEclipse 8进行开发。 5. **...

    MyBatis_3_整合Spring3、SpringMVC

    - 启用字符编码过滤器,以解决中文乱码问题。 3. **配置dispatcher.xml** - 定义Spring MVC的上下文配置文件,包含对视图解析器、拦截器、处理器映射器等的配置。 - 通过`&lt;context:component-scan&gt;`标签自动扫描...

    ssm+mysql实现的Java web酒店管理项目源码.pdf

    - 中文乱码:修改Tomcat的`server.xml`文件,添加字符集设置以解决乱码问题。 通过这个项目,学习者不仅可以了解SSM框架的实际运用,还能学习到数据库设计、Web开发流程、数据可视化以及问题排查等方面的知识,...

    周老科研站1的一些资料

    中文乱码是跨平台、跨浏览器通信时常见的问题,这个文档可能提供了有效解决这个问题的方法,对于进行多语言网站开发的开发者具有指导意义。 9. **控制Word-Excel在IE中打开,还是下载**:在Web应用中,有时需要控制...

    Java如何从服务器中下载图片

    - `request.setCharacterEncoding("UTF-8")`确保请求参数的编码是UTF-8,避免中文乱码问题。 - `response.setContentType("application/msexcel;charset=utf-8")`定义了响应的MIME类型,这里设置为`application/ms...

    My97Datepicker日历控件

    开发者可以使用诸如Spring MVC的模型绑定或直接在控制器中解析请求参数来获取日期值。 6. **兼容性与性能** My97Datepicker控件具有良好的浏览器兼容性,支持IE6+及现代浏览器。它的性能优化做得很好,即便在大量...

    SpringMVC+Jquery实现Ajax功能

    4. **配置过滤器**:配置`CharacterEncodingFilter`以解决POST请求可能出现的乱码问题,确保请求和响应使用UTF-8编码。 5. **配置SpringMVC配置文件**(例如`applicationContext-mvc.xml`):定义处理器映射器、...

Global site tag (gtag.js) - Google Analytics