0

インフォボックスに含まれる情報を抽出するために、ウィキペディアのページを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ライブラリを使用していることを忘れていました。

4

2 に答える 2

1

コンソールはUTF-8を正しく解釈している可能性がありますが、ネットワーク経由でデータを読み取るときにエンコードが間違っていると、問題が発生します。

使用するJTidyのエンコーディングとしてUTF-8を指定します。

于 2012-06-04T09:02:21.123 に答える
0

Eclipse プロジェクトを右クリック > 実行構成 > 共通タブに移動し、そこで UTF-8 を確認します。

于 2012-06-04T08:39:18.363 に答える