我使用 Servlet+JasperReport 生成一个带有可变文件名的 pdf 文件。fileName
但如果变量(第六行)包含非英文字符,则文件名无法正确显示。
我得到的文件是---.pdf
or --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.