jSoup non è unescaping miei entità HTML correttamente
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 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
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);