Java文件下载:如何编码文件名称以及如何设置HttpServletResponse

在下载文件时,经常遇到文件名乱码等问题。
本文说明如何编码文件名,以及如何设置HttpServletResponse对象。

1,如何编码文件名

String userAgent = request.getHeader("User-Agent");
if (/* IE 8 至 IE 10 */
    userAgent.toUpperCase().contains("MSIE") ||
    /* IE 11 */
    userAgent.contains("Trident/7.0")) {
    fileName = URLEncoder.encode(fileName, "UTF-8");
} else if (userAgent.toUpperCase().contains("MOZILLA") || 
userAgent.toUpperCase().contains("CHROME")) { fileName = new String(fileName.getBytes(), "ISO-8859-1"); } else { fileName = URLEncoder.encode(fileName, "UTF-8"); }

2,如何设置HttpServletResponse对象 以下代码以Excel文件下载为例。

response.setCharacterEncoding("UTF-8");
response.setContentType("application/vnd.ms-excel");
response.addHeader("Content-Disposition", "attachment; filename=" + fileName);
posted @ 2017-10-19 11:50  腾鲲  阅读(11202)  评论(0编辑  收藏  举报