首先需要自己构造一个工具类,下面就是工具类。需要直接拷贝拿去用就可以没有可说的。
package ToolsPages;
import sun.misc.BASE64Encoder;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
public class DownLoadUtils {
public static String getFilename(String agent ,String filename) throws UnsupportedEncodingException {
if (agent.contains("MSIE")) {
// IE浏览器
filename = URLEncoder.encode(filename, "utf-8");
filename = filename.replace("+", " ");
} else if (agent.contains("Firefox")) {
// 火狐浏览器
BASE64Encoder base64Encoder = new BASE64Encoder();
filename = "=?utf-8?B?"
+ base64Encoder.encode(filename.getBytes("utf-8")) + "?=";
} else {
// 其它浏览器
filename = URLEncoder.encode(filename, "utf-8");
}
return filename;
}
}
然后就需要在对应的Servlet类中添加两行代码,代码如下 ,另外添加上截图
//解决中文文件名乱码问题 通过两步 一获取 user-agent 请求头 二是调用工具类
String agent = request.getHeader("user-agent");
filename = DownLoadUtils.getFilename(agent,filename);
到这里这个问题就解决了。