【问题标题】:JRException: Invalid byte 1 of 1-byte UTF-8 sequenceJRException:1 字节 UTF-8 序列的字节 1 无效
【发布时间】:2013-07-23 09:44:23
【问题描述】:

我正在尝试使用 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 filw不是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"

【问题讨论】:

  • JasperCompileManager.compileReport(path + "/relatorios/aluno.jasper"); - 你应该编译 jrxml 文件。试试这样的代码:JasperReport jasperReport = JasperCompileManager.compileReport("test.jrxml");
  • 问题解决了吗?

标签: java jasper-reports report


【解决方案1】:

文件开头有 &lt;?xml version="1.0" encoding="UTF-8"?&gt;这一事实并不意味着文件实际上是以UTF-8编码存储的,这只是意味着“我发誓这个文件具有这种编码”。

您的文件中是否有经典 ASCII 以外的字符? (类似于带有波浪线的西班牙语 N?)

尝试使用合适的编辑器打开文件并再次保存,明确选择编码为 UTF-8 AND,然后查看文件中的特殊字符,看看它们是否仍然存在一样的。

【讨论】:

  • 我用 Sublime 打开 aluno.jrxml 并用编码 UTF-8 保存,但问题仍然存在,所以我猜问题是在将 aluno.jrxml 编译为 aluno.jasper 时,所以我使用生成报告aluno.jrxml 因为我确信我的 jrxml 处于正确的环境中。
  • 我将使用jrxml 文件而不是jasper 文件用Java 代码更新我的问题。我真的很感谢你,我希望这对其他人有所帮助。
猜你喜欢
  • 2018-04-10
  • 2018-12-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-10
  • 2013-03-10
  • 2010-11-22
相关资源
最近更新 更多