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.