【发布时间】:2019-06-05 10:20:55
【问题描述】:
我想使用 jasper 报告库获取报告,但我收到错误 “net.sf.jasperreports.engine.JRException:com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException:1 字节 UTF-8 序列的字节 1 无效。”
private JasperPrint prepareReport(EnumList.JRList report) {
try {
Connection conn = getConnection();
String jasperResource = "/reports/" + report.getName() + ".jasper";
InputStream jasperStream = getClass().getResourceAsStream(jasperResource);
//InputStreamReader inputStreamReader = new InputStreamReader(jasperStream, Charset.forName("UTF-8"));
JasperReport jasperReport =
JasperCompileManager.compileReport(jasperStream);
Map<String, Object> param = new HashMap<String, Object>();
JRDesignStyle jrDesignStyle = new JRDesignStyle();
//jrDesignStyle.setPdfEncoding("UTF-8");
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, param, conn);
return jasperPrint;
} catch (Exception e) {
System.out.println("reportPrepareError: " + report.getName());
return null;
}
}
public static JasperReport compileReport(InputStream inputStream) throws JRException
{
return getDefaultInstance().compile(inputStream);
}
public JasperReport compile(InputStream inputStream) throws JRException {
JasperDesign jasperDesign = JRXmlLoader.load(inputStream);
return this.compile(jasperDesign);
}
【问题讨论】:
-
您的 jrxml 中可能有问题(无法正确解析)请参阅stackoverflow.com/questions/15545720/…
标签: jasper-reports