【问题标题】:MalformedByteSequenceException: Invalid byte 1 of 1-byte UTF-8 sequenceMalformedByteSequenceException:1 字节 UTF-8 序列的字节 1 无效
【发布时间】:2018-04-10 16:32:33
【问题描述】:

我的文件已经在 notepad++ 中使用 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)

【问题讨论】:

  • 是否存储为 UTF-8 without BOM?
  • 如何判断是不是?
  • 我在notepad++ Encoding 中看到> 没有BOM 看不到UTF-8。
  • 我的记事本++过时了吗?我看不到选项。

标签: java xml encoding utf-8


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-26
    • 2013-07-23
    • 1970-01-01
    • 1970-01-01
    • 2013-12-10
    • 2013-03-10
    • 2010-11-22
    相关资源
    最近更新 更多