1

HTML ドキュメントから情報を抽出する小さなサンプル プログラムがあります。

import org.jsoup.*;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;

public class TestSoup {

    public static void main(String[] args) {

        String html = "<p>An <a href='http://example.com/'><b>exa&nbsp;mple</b></a> link.</p>";
        Document doc = Jsoup.parse(html);
        Element link = doc.select("a").first();

        String linkText = link.text(); // "example""
        System.out.println(linkText);

    }

}

jSOup を使用したことがある場合は、これの出力は であるはずですexa mpleが、出力はexaámple. jSoup が HTML エンティティを適切にアンエスケープしないのはなぜですか、それとも単純に間違っているのでしょうか?

すべての HTML エンティティが正しくエスケープ解除されます。&nbsp;

4

1 に答える 1

5

jSoup は正しく動作しますが、出力エンコーディングに問題があります。

Windowsでは、コンソールで使用される文字エンコーディング(CP437あなたの場合)はシステムエンコーディング(あなたの場合)と同じではありませんWindows-1252System.out.println()システムのデフォルトのエンコーディングで文字列を出力するため、コンソールに正しく表示されません。

System.console()Java 1.6 では、代わりに試すことができます。

System.console().writer().println(linkText); 
于 2011-01-03T18:04:27.230 に答える