1

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

我得到的文件是---.pdfor --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.

4

0 回答 0