【问题标题】:DataInputStream UTFDataFormatException: malformed input around byte 88 root causeDataInputStream UTFDataFormatException:字节 88 附近的错误输入根本原因
【发布时间】:2017-02-23 10:34:08
【问题描述】:

在过去 2 周内,我开始在我的网络应用程序中看到此错误。服务器是 linux redhat,最近没有打补丁。它也已经持续了 44 天。也没有任何 java 或 tomcat 更改或发布(但 tomcat 确实每天被退回一个)。我知道它看起来像是某种字符集/语言环境/编码问题,但我现在不知道为什么它可能已经开始了。它最终与 poi 代码有关。

我正在使用 poi-ooxml-3.10.1.jar,它引入了 xmlbeans-2.6.0.jar。似乎错误是 xmlbeans 初始化时,然后在从其编译模式之一读取 2 字节“修改后的 UTF-8”字符时失败。这就是我到目前为止的地方。为什么这会在受控环境中开始发生,这让我感到困惑。

导致这种情况的代码行

new SXSSFWorkbook(-1);

下面的一些sn-ps:

at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:181)
at org.apache.poi.xssf.streaming.SXSSFWorkbook.<init>(SXSSFWorkbook.java:172)
at org.apache.poi.xssf.streaming.SXSSFWorkbook.<init>(SXSSFWorkbook.java:143)
at org.apache.poi.xssf.streaming.SXSSFWorkbook.<init>(SXSSFWorkbook.java:205)
...
Caused by: java.io.UTFDataFormatException: malformed input around byte 88
    at java.io.DataInputStream.readUTF(DataInputStream.java:634)
    at java.io.DataInputStream.readUTF(DataInputStream.java:564)
    at
org.apache.xmlbeans.impl.schema.SchemaTypeSystemImpl$StringPool.readFrom(SchemaTypeSystemImpl.java:1050)

它不能在本地 Windows 机器上重现。

非常感谢您的关注和任何新想法。

【问题讨论】:

  • 让我感到困惑的是为什么会调用readUTF()writeUTF() 格式是 Java 特有的:它与 Microsoft POI 格式没有任何关系。

标签: java apache-poi utf


【解决方案1】:

这是某种损坏的构建。很奇怪。无论如何重建工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-06
    • 1970-01-01
    相关资源
    最近更新 更多