原来一直使用的是PrintWriter out = response.getWriter();的方式,现在出现乱码。用以下方式可以解决。
BufferedInputStream in =new java.io.BufferedInputStream(new java.io.FileInputStream(fileUrl));
BufferedOutputStream out=new java.io.BufferedOutputStream(response.getOutputStream());
byte[] buff = new byte[2048];
int bytesRead;
response.setContentType("application/octet-stream;charset=gbk");
response.setHeader("Content-Disposition","attachment;filename = "+fileName);
while (-1 != (bytesRead = in.read(buff, 0, buff.length))) {
out.write(buff, 0, bytesRead);
}
in.close();
out.close();
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步