我正在尝试使用 Jasper Reports 生成报告,但出现以下错误。
net.sf.jasperreports.engine.JRException:com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException:1 字节 UTF-8 序列的字节 1 无效。
我正在使用这个 Java 代码:
List<Aluno> lista = alunoService.findAll();
String path = req.getSession().getServletContext().getRealPath("WEB-INF");
JasperReport report = JasperCompileManager.compileReport(path + "/relatorios/aluno.jasper");
JasperPrint print = JasperFillManager.fillReport(report, null, new JRBeanCollectionDataSource(lista));
JasperExportManager.exportReportToPdfFile(print, path + "/relatorios/teste.pdf");
尝试编译报告时发生错误:
JasperReport report = JasperCompileManager.compileReport(path + "/relatorios/aluno.jasper");
aluno.jrxml 文件采用 UTF-8 编码:
<?xml version="1.0" encoding="UTF-8"?>
我研究过这个问题,但他们都说原因是因为 jrxml 文件不是 UTF-8 编码的。如果有人可以帮助我,我真的很感谢。
Java代码使用aluno.jrxml
List<Aluno> lista = alunoService.findAll();
String path = req.getSession().getServletContext().getRealPath("WEB-INF");
JasperDesign design = JRXmlLoader.load(path + "/relatorios/aluno.jrxml");
JasperReport report = JasperCompileManager.compileReport(design);
JasperPrint print = JasperFillManager.fillReport(report, null, new JRBeanCollectionDataSource(lista));
JasperExportManager.exportReportToPdfFile(print, path + "/relatorios/teste.pdf"