我的文件已经在记事本++中用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)
答案 0 :(得分:0)
我认为情况是Xerces接受带有BOM的UTF-8输入如果给出一个(二进制)InputStream来读取,但是如果你给它一个(基于字符的)读者作为输入,它会询问Java I / O库进行解码,那将失败。
所以这取决于Jasper Reports如何调用Xerces。我不知道你是否对此有任何控制权。