我正在用Java抓取维基百科页面,以提取信息框中包含的信息。
除了字符编码之外,所有操作都很好。维基百科网页使用"UTF-8“编码。
Ubuntu eclipse控制台也使用"UTF-8“作为默认编码。然而,eclipse控制台在显示被刮掉的信息时会显示一些奇怪的符号。(例如:Smith · Ricardo
而不是Smith · Ricardo
)
这是我用来读取数据的函数(它遍历节点的所有子节点并在末尾加入他们的文本信息):
private String getTextContent(Node node) {
String text = "";
List<Node> children = null;
if (isTextNode(node)) {
return node.getNodeValue();
}
else if (!node.hasChildNodes()) {
return "";
}
else {
children = toList(node.getChildNodes());
for (Node childNode : children) {
text += getTextContent(childNode);
}
}
return text;
}
我忘记提到我正在使用JTidy库进行抓取。
发布于 2012-06-04 09:02:21
控制台可能正确地解释了UTF-8,但是如果您在网络上读取数据时出现了错误的编码,那么您就会遇到问题。
指定UTF-8作为JTidy使用的编码。
发布于 2012-06-04 08:39:18
转到Eclipse右侧,单击>运行Configuration>Common选项卡,并检查那里是否有UTF-8。
https://stackoverflow.com/questions/10878424
复制相似问题