我正在寻找解释为什么当我的 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);
我不太明白为什么后者有效。我已经看到了它被使用的例子,但没有解释它为什么起作用。第二个解析字符串而不是文件,因此编码将是 UTF-8?