gpt4 book ai didi

java - 尝试使用 DOM 解析时出现 MalformedByteSequenceException 异常

转载 作者:行者123 更新时间:2023-12-01 15:02:37 28 4
gpt4 key购买 nike

我有这个代码:

DocumentBuilderFactory builderFactory =
DocumentBuilderFactory.newInstance();
DocumentBuilder builder = null;
try {
builder = builderFactory.newDocumentBuilder();
} catch (ParserConfigurationException e) {
e.printStackTrace();
}
Document document = null;
try {
URL url = new URL("http://en.wikipedia.org/wiki/Charlie_Chaplin");

//Reader reader = new InputStreamReader(url.openStream(),"UTF-8");
document = builder.parse(url.openStream());
} catch (SAXException e) {
e.printStackTrace();
return;
} catch (IOException e) {
e.printStackTrace();
return;
}

在我尝试处理的页面上,出现以下异常:

com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: Invalid byte 1 of 1-byte UTF-8 sequence.

如何将页面更改为 UTF-8?或者,我可以通过什么其他方式解决这个问题?

最佳答案

您正在尝试使用 XML 解析器读取 HTML。您的字符集只是问题的开始。

您将需要一个合适的 HTML 解析器。如果你想要类似 DOM 的结构,我推荐 http://jsoup.org/ 。如果您只需要文本,可以使用 Apache Tika。

如果您坚持将其提供给 XML 解析器,您可以将字节读入缓冲区,然后使用 Tika 的字符编码检测器来发现编码,然后转换为字符串,并将字符串提供给 DOM解析器。

关于java - 尝试使用 DOM 解析时出现 MalformedByteSequenceException 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13430499/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com