Domanda

Ho un programma di esempio piccolo che estrae alcune informazioni da un documento 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);

    }

}

Se avete lavorato con jSOup saprete che l'uscita di questo dovrebbe essere exa mple ma l'uscita è exaámple. Perché non jSoup unescapting miei entità HTML corretto o sto semplicemente facendo questo torto?

Tutti i miei entità HTML ottenere senza caratteri di escape in modo non corretto e non solo &nbsp;

È stato utile?

Soluzione

jSoup funziona correttamente, hai un problema con codifica in uscita.

In Windows, la codifica dei caratteri usata da console (CP437 nel tuo caso) non è la stessa come la codifica del sistema (Windows-1252 nel tuo caso). System.out.println() uscite la stringa con la codifica di default del sistema, quindi è visualizzato correttamente nella console.

In Java 1.6 è possibile provare System.console() invece:

System.console().writer().println(linkText); 
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top