ffmmx's Blog

Happy coding

java 使用tomcat服务器解决文件下载乱码

文件下载乱码原因主要是服务器URI编码和文件名字符串编码不一致,或者没有把响应头信息里面的附件属性的文件名使用URLCODE进行编码。

解决这个问题,需要使用 org.apache.catalina.util.URLEncoder,对文件名进行处理:

org.apache.catalina.util.URLEncoder encoder = new org.apache.catalina.util.URLEncoder();
			
String filename = encoder.encode(“附件文件名”);
response.setContentType(attachment.getAttachmentContentType());
response.addHeader("Content-Disposition",
					"attachment; filename="+filename
					);

这样下载文件就不会乱码了。另外一种方法是在TOMCAT配置文件里面配置URICODE=你页面编码 这样也可以阻止乱码