Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JasperReports API:调用JasperCompileManager.compileReport(字符串)方法引发了MalformedByteSequenceException异常_Java_Jasper Reports - Fatal编程技术网

Java JasperReports API:调用JasperCompileManager.compileReport(字符串)方法引发了MalformedByteSequenceException异常

Java JasperReports API:调用JasperCompileManager.compileReport(字符串)方法引发了MalformedByteSequenceException异常,java,jasper-reports,Java,Jasper Reports,上面是我的剧本 这是我的错误: public void openReport() { try { HashMap params = new HashMap(); params.put("aapor", 19); JasperReport jasperReport1 = JasperCompileManager.compileReport("C:/Users/emidemi.emidemi-PC/Documents/NetBeansPro

上面是我的剧本

这是我的错误:

public void openReport() {

    try {
        HashMap params = new HashMap();
        params.put("aapor", 19);

        JasperReport jasperReport1 = JasperCompileManager.compileReport("C:/Users/emidemi.emidemi-PC/Documents/NetBeansProjects/FleetManager/src/FleetManager/newReport5.jasper");
        JasperPrint jasperPrint1 = JasperFillManager.fillReport(jasperReport1, params, conn.getConn());

        JRViewer viewer = new JRViewer(jasperPrint1);

    } catch (Exception e) {
        System.out.println(e.getMessage());
    }
}

有人知道为什么会发生这种情况以及如何解决吗?

这是字符编码的问题。您是否尝试过更改报告开头的编码行

i、 e.对于中欧字母表,更改:

com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: Invalid byte 1 of 1-byte UTF-8 sequence.
BUILD SUCCESSFUL (total time: 7 seconds)


这里列出了不同的字符编码标准:


希望它能工作

此异常何时发生(编译还是执行?)。通常,这个问题意味着您的输入不是UTF-8

如果您完全确定它应该是UTF-8,请尝试以下方法: 1.创建一个新的空文件并将其编码为UTF-8。 2.将整个文本从旧文件复制到新文件。 3.保存新文件并检查它是否与新文件一起工作。如果是,则旧文件不是正确的UTF-8。 4.如果没有,请发布您的输入文件(jrxml)


当我遇到这样的问题时,我会尝试查找有问题的字符,十六进制编辑器会提供帮助。

您正在尝试编译一个已经编译过的jasper文件。用newReport5.jrxml替换newReport5.jasper

如果要直接使用jasper文件,必须执行以下操作:

<?xml version="1.0" encoding="CP1250"?>
<?xml version="1.0" encoding="CP1250"?>
JasperReport jasperReport = (JasperReport)JRLoader.loadObject(new File("filename.jasper"));