java 导出文件编码问题
public static void exportToExcel(String uid,String name,String htmlText,HttpServletRequest request,HttpServletResponse response) { htmlText = htmlText.replaceFirst("<table>","<tableFirst>"); htmlText = htmlText.replaceAll("<table>","<table cellpadding="3" cellspacing="0" border="1" rull="all" style="border-collapse: collapse">"); htmlText = htmlText.replaceFirst("<tableFirst>","<table>"); try (OutputStream out = response.getOutputStream()) { String fileName = name+ "_" + DateUtils.getNow("yyyyMMddHHmmss");// fileName = new String(fileName.getBytes(),"utf-8")+ ".xls"; if ("large".equals(htmlText)) { ReportingPo report = reportingService.getByUid(uid); Map<String,Object> formParameters = generationService.getFormParameters(request.getParameterMap(),report.getDataRange()); ReportTable reportTable = generationService.getReportTable(report,formParameters); htmlText = reportTable.getHtmlText(); }// response.reset(); response.addHeader("Content-Disposition","attachment;filename=" + new String(fileName.getBytes("utf-8"),"iso-8859-1")+ ".xls");// response.setHeader("Content-Disposition",String.format("attachment; filename=%s",fileName)); response.setContentType("application/vnd.ms-excel; charset=utf-8"); response.setCharacterEncoding("utf-8"); response.addCookie(new Cookie("fileDownload","true"));// out.write(new byte[] { (byte) 0xEF,(byte) 0xBB,(byte) 0xBF }); // 生成带bom的utf8文件 out.write(htmlText.getBytes("utf-8")); out.flush(); } catch (Exception ex) { throw new RuntimeException(ex); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |