由于JDK中的/lib/tool.jar和/lib/rt.jar已经从Java SE 9中删除
因而使用 java.util.Base64.Encoder 和 java.util.Base64.Decoder 替代使用
具体代码如下:
import java.util.Base64;
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")) {
// 火狐浏览器
//jdk9【包括】之后
Base64.Encoder base64Encoder = Base64.getEncoder();
filename = "=?utf-8?B?" + base64Encoder.encodeToString(filename.getBytes("utf-8")) + "?=";
//jdk8以及jdk8之前
BASE64Encoder base64Encoder = new BASE64Encoder();
filename = "=?utf-8?B?" + base64Encoder.encode(filename.getBytes("utf-8")) + "?=";
} else {
// 其它浏览器
filename = URLEncoder.encode(filename, "utf-8");
}
return filename;
}
}
注意上面分为1.8之前的代码和1.9之后的代码,注意区别使用!