关于JDK不支持BASE64Encoder类解决方案
package servlet;
import java.io.UnsupportedEncodingException;
import java.util.Base64;
public class test {
public static void main(String[] args) throws UnsupportedEncodingException {
String content ="布鲁斯";
byte[] bytes = content.getBytes();
Base64.Encoder encoder = Base64.getEncoder();
String result1 = encoder.encodeToString(bytes);
System.out.println(result1);
Base64.Decoder decoder = Base64.getDecoder();
byte[] result2 = decoder.decode(result1);
content=new String(result2,"UTF-8");
System.out.println(content);
}
public class downloadServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String name = "Juke.mp3";
ServletContext servletContext = getServletContext();
String mimeType = servletContext.getMimeType("/file/" + name);
resp.setContentType(mimeType);
if (req.getHeader("User-Agent").contains("Mozilla")) {
resp.setHeader("Content-Disposition", "attachment;fileName=" + "=?UTF-8?B?" + "5biD6bKB5pav" + "?=");
} else {
resp.setHeader("Content-Disposition", "attachment;fileName=" + URLEncoder.encode("布鲁斯.MP3", "UTF-8"));
}
InputStream resourceAsStream = servletContext.getResourceAsStream("/file/" + name);
ServletOutputStream outputStream = resp.getOutputStream();
IOUtils.copy(resourceAsStream, outputStream);
}
}