问题
由于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);
}
精彩链接
发表评论