MalformedByteSequenceException:1字节UTF-8序列的无效字节1

时间:2017-10-29 16:38:30

标签: java xml encoding utf-8

我的文件已经在记事本++中用UTF-8编码,为什么我仍然会收到此错误?

顺便说一下,我使用的是jasperreports。的.jrxml

    Oct 30, 2017 12:35:07 AM frmStart jButton_repActionPerformed
SEVERE: null
net.sf.jasperreports.engine.JRException: com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: Invalid byte 1 of 1-byte UTF-8 sequence.
    at net.sf.jasperreports.engine.xml.JRXmlLoader.loadXML(JRXmlLoader.java:249)
    at net.sf.jasperreports.engine.xml.JRXmlLoader.loadXML(JRXmlLoader.java:228)
    at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:216)
    at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:170)
    at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:154)
    at net.sf.jasperreports.engine.JasperCompileManager.compileReportToFile(JasperCompileManager.java:85)
    at frmStart.jButton_repActionPerformed(frmStart.java:556)

1 个答案:

答案 0 :(得分:0)

我认为情况是Xerces接受带有BOM的UTF-8输入如果给出一个(二进制)InputStream来读取,但是如果你给它一个(基于字符的)读者作为输入,它会询问Java I / O库进行解码,那将失败。

所以这取决于Jasper Reports如何调用Xerces。我不知道你是否对此有任何控制权。