2012-06-04 69 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