public static void setFileDownloadHeader(HttpServletResponse response, String filename) {
String headerValue = "attachment;";
headerValue += " filename=\"" + encodeURIComponent(filename) + "\";";
headerValue += " filename*=utf-8''" + encodeURIComponent(filename);
response.setHeader("Content-Disposition", headerValue);
}
public static String encodeURIComponent(String value) {
try {
return URLEncoder.encode(value, "UTF-8").replaceAll("\\+", "%20");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
return null;
}
}
下载zip包,下载Excel表等标题中含有中文时经常出现乱码,也就是filename中含有中文时,通过这个方式能够解决。之前看到这个解决方案的时候看到了作者有相应的原因解释,可以百度一下。
本文介绍了一种解决下载含有中文文件名时出现乱码的方法。通过设置HTTP响应头和使用UTF-8编码,确保了文件名在不同浏览器和操作系统中正确显示。

被折叠的 条评论
为什么被折叠?



