Netbeans不会解码特殊字符

时间:2016-04-02 18:03:51

标签: java html netbeans encoding jsoup

我试图使用Jsoup解析HTML文件。在这个HTML中有一个我要删除的特殊字符,(€),这就是它原来的样子:

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

但是,Netbeans在打印该元素时会显示:

49.99 ?

因此,我不能这样做:

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

这两个都没有:

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

我该怎么办?

3 个答案:

答案 0 :(得分:0)

here修改:

  

要匹配单个字符,您只需将它们包含在字符类中,可以是文字或\u20AC语法

欧元的unicode是\u20AC

注意:我不确定为什么它会显示为?,但这可能只是因为它不是ASCII,而且可能在字体中缺失。

答案 1 :(得分:0)

使用此 - &gt;

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

它是HTML中的符号表示

答案 2 :(得分:0)

  

Netbeans在打印该元素时显示了这一点

几乎可以肯定,这是因为您的NetBeans控制台尚未配置为支持Unicode字符,这就是您被误导的原因。有关解决方案,请参阅:How to change default encoding in NetBeans 8.0

所以,文档很好,正则表达式可以工作,而且不需要改变任何其他内容。

以下是正确解析原始文档,替换欧元符号并返回49.99的最小工作示例。

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