当社のプロバイダーの 1 つは、UTF-8 でエンコードされたドキュメントとしてタグ付けされているが、UTF-8 文字セットに含まれていない文字を含む XML フィードを送信することがあります。これにより、パーサーは例外をスローし、これらの文字が検出されたときに DOM オブジェクトの構築を停止します。
DocumentBuilder.parse(ByteArrayInputStream bais)
次の例外をスローします。
org.xml.sax.SAXParseException: Invalid byte 2 of 2-byte UTF-8 sequence.
これらの問題を早期に「キャプチャ」し、例外を回避する方法はありますか (つまり、これらの文字を見つけてストリームから削除するなど)? 私が探しているのは、誤ってエンコードされたドキュメントの「ベスト エフォート」タイプのフォールバックです。正しい解決策は明らかに、問題の発生源を攻撃し、正しいドキュメントのみが配信されるようにすることですが、それが不可能な場合の適切なアプローチは何でしょうか?