私は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はリーダー/InputSourceを取りません。
これを修正する最良の方法は何ですか?
ありがとう!