XMLファイル内に特別なUTF-8文字が含まれていると、SAXパーサーが失敗する理由を説明したいと思っています。
私が使用するXMLファイルを解析するにはDocument doc = builder.parse(inputSource);
ただし、それを使用するinputSource
と正常に動作します。
DocumentBuilder builder = factory.newDocumentBuilder();
InputStream in = new FileInputStream(file);
InputSource inputSource = new InputSource(new InputStreamReader(in));
Document doc = builder.parse(inputSource);
後者がなぜ機能するのかよくわかりません。使用例を見てきましたが、なぜ機能するのか説明がありません。2番目はファイルではなく文字列を解析するので、エンコーディングはUTF-8になりますか?