2016-04-02 16 views
0

Ich versuche, eine HTML-Datei mit Jsoup zu analysieren. In diesem HTML gibt es einen speziellen Charakter, den ich entfernen möchten, (€), ist dies, wie es ursprünglich:Netbeans dekodiert keine Sonderzeichen

<span class="price-value"> 
    49,99 € 
</span> 

jedoch Netbeans dies zeigt, wenn dieses Element den Druck:

49.99 ? 

Daher ich kann das nicht tun:

price.replace("€", "").replace(",", ".").trim(); 

Weder diese:

price.replace("\\?", "").replace(",", ".").trim(); 

Was kann ich dagegen tun?

+0

verwenden Sie Codierung von UTF-8? – Saidolim

+0

Sie sollten einen Blick auf diese https://docs.oracle.com/javase/tutorial/i18n/text/string.html – Natecat

Antwort

0

Netbeans zeigt dies, wenn das Element Druck

Fast sicher, weil Ihr NetBeans ist Die Konsole wurde nicht für die Unterstützung von Unicode-Zeichen konfiguriert. Aus diesem Grund wurden Sie in die Irre geführt. Für eine Lösung dazu, siehe: How to change default encoding in NetBeans 8.0

Also, das Dokument ist in Ordnung, die regulären Ausdrücke hätten funktioniert, und es besteht keine Notwendigkeit, etwas anderes zu ändern.

Hier ist ein minimales Arbeitsbeispiel des Originaldokuments, das korrekt analysiert wird, das Euro-Symbol ersetzt und 49.99 zurückgegeben.

Element doc = Jsoup.parse("<html><body><span class=\"price-value\">49,99 €</span></body></html>"); 
Element span = doc.select("span").get(0); 
System.out.println(span.text().replace("€", "").replace(",", ".").trim()); 
+0

Es ist seltsam, weil es immer funktioniert hat, bis jetzt. Ich habe Netbeans neu installiert und jetzt funktioniert es gut. – cuoka

0

von here Modifiziert:

einzelne Zeichen übereinstimmen, kann man einfach sie in ein Zeichenklassen umfassen, entweder als Literale oder über die \u20AC Syntax

Die Unicode für den Euro ist \u20AC.


Hinweis: Ich bin nicht sicher, warum es als ? angezeigt werden würde, aber das könnte nur sein, weil es nicht ASCII ist, und könnte in der Schrift fehlen.

0

verwenden ->

<span class="price-value"> 
49,99 &euro; 
</span> 

Es ist die Darstellung von € Zeichen in HTML

Verwandte Themen