2016-08-10 3 views
2

Der Text stammt von einer Webseite und ist bereits in ISO-8859-1;Jsoup codiert ISO-8859-1-Text, der auf einer Webseite zu einer anderen Kodierung ist

Lassen Sie mich zuerst ein Beispiel für das Problem zeigen. Lassen Sie uns sagen, dass dies eines der Textstücke von der Webseite, Mark Helström. Als ich Jsoup verwenden, um die Seite zu analysieren, wird dieses Stück Text dann biegen Sie in: Mark Helström

Hier ein Beispiel für den Webseiten-Code ist:

<body> 
    <p>Mark Helström</p> 
</body> 

Hier ist der Code, wo ich die Homepage zu analysieren:

String url = "http://localhost:8080/translator/test"; 
    Document doc = Jsoup.connect(url).get(); 

    System.out.println("charset=" + doc.outputSettings().charset()); 

    doc.outputSettings().charset(Charset.forName("ISO-8859-1")); 

    System.out.println("charset=" + doc.outputSettings().charset()); 

    for(Element code : doc.select("*")) { 
     System.out.println("code=" + code.ownText());    
    } 

Hier ist der oben durch den Code erzeugte Ausgang:

charset=ISO-8859-1 
charset=ISO-8859-1 
code= 
code= 
code= 
code= 
code=Mark Helström 
+0

Mögliche Duplikat [JSoup Zeichencodierung Ausgabe] (http://stackoverflow.com/questions/7703434/jsoup-character-encoding-issue) –

+0

Kein möglich Duplikat. Ich habe diese Methode ausprobiert und es hat nicht funktioniert. – cod3min3

+0

Können Sie Ihren Code dort anzeigen, wo Sie versucht haben, den Inhalt als ISO-8859-1 zu analysieren? Was Sie zur Zeit haben, ist der Ausgabe-Zeichensatz, nicht die Eingabe. –

Antwort

0

Scheint gut zu funktionieren, wenn ich diese Seite für die Charaktere analysiere.

Document doc = Jsoup 
      .connect("http://stackoverflow.com/questions/38875180/jsoup-is-encoding-iso-8859-1-text-thats-on-a-webpage-to-another-encoding") 
      .get(); 

    System.out.println("charset=" + doc.outputSettings().charset()); 

    doc.outputSettings().charset(Charset.forName("ISO-8859-1")); 

    System.out.println("charset=" + doc.outputSettings().charset()); 

    for (Element code : doc.select(".post-text p code:contains(mark)")) 
     System.out.println("code=" + code.ownText()); 

Console

charset=UTF-8 
charset=ISO-8859-1 
code=Mark Helström 
code=Mark Helström 
Verwandte Themen