我正在用 Java 处理 xml,我有以下代码:
dbf.setValidating(false);
dbf.setIgnoringComments(false);
dbf.setIgnoringElementContentWhitespace(true);
dbf.setNamespaceAware(true);
DocumentBuilder db = null;
db = dbf.newDocumentBuilder();
db.setEntityResolver(new NullResolver());
_logger.error("Before processing the input stream");
processXml(db.parse(is));
其中 (is) 是一个 InputStream。
这导致错误:
com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException:2 字节 UTF-8 的第 2 字节无效
这听起来像是由于编码错误而导致的错误。我想在 InputStream 上设置编码,但我不确定如何。我找到了在 InputSource 或 InputStreamReader 上设置编码的方法,但是 db.parse 不采用 reader/InputSource。
解决此问题的最佳方法是什么?
谢谢!