Frage

Ich habe ein kleines Beispielprogramm, das einige Informationen aus einem HTML -Dokument extrahiert.

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);

    }

}

Wenn Sie mit JSOUP gearbeitet haben, wissen Sie, dass die Ausgabe davon sein sollte exa mple Aber der Ausgang ist exaámple. Warum ist JSOUP meine HTML -Entitäten nicht richtig und mache ich das einfach falsch?

Alle meine HTML -Entitäten werden falsch und nicht nur falsch und nicht nur falsch &nbsp;

War es hilfreich?

Lösung

JSOUP funktioniert korrekt, Sie haben ein Problem mit der Ausgangscodierung.

In Windows, Zeichenkodierung von Konsole (von der Konsole verwendet (CP437 in Ihrem Fall) ist nicht dasselbe wie die Systemcodierung (Windows-1252 in Ihrem Fall). System.out.println() gibt Ihre Zeichenfolge in der Systemstandkodierung aus, daher wird sie in der Konsole falsch angezeigt.

In Java 1.6 können Sie es versuchen System.console() stattdessen:

System.console().writer().println(linkText); 
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top