2012-06-04 44 views
0

为了提取信息框内包含的信息,我正在用维基百科页面JavaJava刮字符集问题

所有的工作都很好,除了字符编码。 维基百科页面使用“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库进行抓取。

+2

向我们展示一些代码 - 当您读取数据时是否明确指定了编码? –

+0

当我读取数据时,我没有指定任何编码。 – user278064

+2

你知道,你不需要屏幕维基百科?你可以[全部下载](http://dumps.wikimedia.org/)! –

回答

1

控制台可能正确解释了UTF-8,但是如果在通过网络读取数据时出现错误编码,那么您将遇到问题。

指定UTF-8作为JTidy使用的编码。

0

转到Eclipse项目右键单击>运行配置>常用选项卡,然后检查那里的UTF-8。

+0

正如我在我的问题中写的,它已经在UTF-8! – user278064