问题

由于C端的解析方式不一,有时下载文件时会产生乱码

原配置方式

配置为attachment;filename=%20.xlsx形式 部分浏览器可正常解析,部分不行(如Postman)

static void setDownloadHeaders(HttpServletResponse response, String fileName) {

response.setHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_OCTET_STREAM_VALUE);

response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);

// 文件名称

fileName = URLEncoder.encode(fileName, StandardCharsets.UTF_8);

response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + fileName);

}

处理:

配置为attachment;filename=%20.xlsx;filename*=utf-8''%20.xlsx形式

static void setDownloadHeaders(HttpServletResponse response, String fileName) {

response.setHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_OCTET_STREAM_VALUE);

response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);

// 文件名称

fileName = URLEncoder.encode(fileName, StandardCharsets.UTF_8);

response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + fileName + ";" + "filename*=utf-8''" + fileName);

}

精彩链接

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。