Spring如何在下载的文件名上显示非法字符?

时间:2019-07-02 09:23:19

标签: java spring

我下载的文件名为Ça_r_lar_02_07_2019_12_09.xlsx,但是,我想要它Çağrılar_02_07_2019_12_09.xlsx。我该如何解决?

...

1 个答案:

答案 0 :(得分:3)

在发送响应之前,尝试使用UTF-8编码作为文件名

try (Workbook workbook = new XSSFWorkbook()) {
                new XlsExporter().exportXls(workbook, grh);
                SimpleDateFormat sdf = new SimpleDateFormat("_dd_MM_yyyy_HH_mm");
                String name = grh.getReportName() + sdf.format(new Date());
                name = URLEncoder.encode(name,"UTF-8"); 
                response.setContentType(MediaType.APPLICATION_OCTET_STREAM.getType());
                response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + name +  ".xlsx\"");
                workbook.write(response.getOutputStream());
                response.getOutputStream().flush();
            }