使用非英文文件名保存文件

时间:2012-11-12 13:05:11

标签: java-ee

我使用Servlet + JasperReport生成一个带有可变文件名的pdf文件。但是,如果变量fileName(第6行)包含非英文字符,则文件名无法正确显示。

我将文件设为---.pdf--english--or--number--.pdf

这是我的代码:

byte[] pdf = JasperRunManager.runExportToPdf(report, params, datasource);
FacesContext context = FacesContext.getCurrentInstance();
HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse();

response.setContentType("application/pdf");
response.setCharacterEncoding("UTF-8");
response.setHeader("Content-disposition", "attachment; filename=\"" + fileName + ".pdf\"");

ServletOutputStream sos = responser.getOutputStream();

sos.write(pdf);
sos.flush();
sos.close();
context.responseComplete();

我做了很多搜索,但找不到正确显示非英文字符的解决方案。这似乎有点愚蠢而且很容易做,但我想要你的回答。谢谢。

环境:debian(测试不稳定)+ jsf ++ maven + spring + hibernate + java7。

0 个答案:

没有答案