Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java刮取字符集问题_Java_Eclipse_Ubuntu_Character Encoding_Wikipedia - Fatal编程技术网

Java刮取字符集问题

Java刮取字符集问题,java,eclipse,ubuntu,character-encoding,wikipedia,Java,Eclipse,Ubuntu,Character Encoding,Wikipedia,我正在用Java抓取维基百科页面,以便提取信息框中包含的信息 除了字符编码之外,所有的工作都很好。 维基百科页面使用“UTF-8”编码 Ubuntu的eclipse控制台也使用“UTF-8”作为默认编码。 但是,eclipse控制台在显示已删除的信息时会显示一些奇怪的符号。(例如:Smith·Ricardo而不是Smith·Ricardo) 这是我用来读取数据的函数(它遍历一个节点的所有子体,并在最后连接它们的文本信息): 私有字符串getTextContent(节点){ 字符串文本=”; Li

我正在用Java抓取维基百科页面,以便提取信息框中包含的信息

除了字符编码之外,所有的工作都很好。 维基百科页面使用“UTF-8”编码

Ubuntu的eclipse控制台也使用“UTF-8”作为默认编码。 但是,eclipse控制台在显示已删除的信息时会显示一些奇怪的符号。(例如:
Smith·Ricardo
而不是
Smith·Ricardo

这是我用来读取数据的函数(它遍历一个节点的所有子体,并在最后连接它们的文本信息):

私有字符串getTextContent(节点){
字符串文本=”;
List children=null;
if(isTextNode(node)){
返回node.getNodeValue();
}
如果(!node.hasChildNodes()),则为else{
返回“”;
}
否则{
children=toList(node.getChildNodes());
用于(节点子节点节点:子节点){
text+=getTextContent(childNode);
}
}
返回文本;
}

我忘了提到我正在使用JTidy库进行刮取。

进入Eclipse项目右键单击>运行配置>公共选项卡,并在那里检查UTF-8。

控制台可能正确解释UTF-8,但如果在网络上读取数据时编码错误,那你就会遇到问题


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

向我们展示一些代码-您在读取数据时是否明确指定了编码?我在读取数据时没有指定任何编码。您知道您不需要对维基百科进行筛选吗?你可以!控制台可能正确地解释了UTF-8,但是如果在通过网络读取数据时编码错误,那么您将遇到问题。JTidy是否允许您指定编码?或者你能为JTidy提供你自己的
InputStreamReader
?@JoachimSauer:我知道。但我只是不想。
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;
}