Jakarta ee 使用非英语文件名保存文件

Jakarta ee 使用非英语文件名保存文件,jakarta-ee,Jakarta Ee,我使用Servlet+JasperReport生成具有可变文件名的pdf文件。但是,如果第六行的变量filename包含非英语字符,则文件名不会正确显示 我得到的文件是--.pdf或-english或number-.pdf 这是我的密码: byte[] pdf = JasperRunManager.runExportToPdf(report, params, datasource); FacesContext context = FacesContext.getCurrentInstance()

我使用Servlet+JasperReport生成具有可变文件名的pdf文件。但是,如果第六行的变量filename包含非英语字符,则文件名不会正确显示

我得到的文件是--.pdf或-english或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();
我做了很多搜索,但找不到正确显示非英语字符的解决方案。这似乎有点愚蠢,而且很容易做到,但我想要你的答案。多谢各位

环境:Debienting不稳定+jsf++maven+spring+hibernate+java7。

可能重复