使用Java标准库将HTML字符转换回文本

时间:2009-03-01 11:00:44

标签: java html html-entities

我想使用Java标准库将一些HTML字符转换回文本。我想知道是否有任何图书馆能实现我的目的?

/**
 * @param args the command line arguments
 */
public static void main(String[] args) {
    // TODO code application logic here

    // "Happy & Sad" in HTML form.
    String s = "Happy & Sad";
    System.out.println(s);

    try {
        // Change to "Happy & Sad". DOESN'T WORK!
        s = java.net.URLDecoder.decode(s, "UTF-8");
        System.out.println(s);
    } catch (UnsupportedEncodingException ex) {

    }
}

8 个答案:

答案 0 :(得分:56)

我认为Jakarta Commons Lang库的StringEscapeUtils.escapeHtml()和unescapeHtml()方法正是您所寻找的。请参阅http://commons.apache.org/proper/commons-lang/javadocs/api-3.1/org/apache/commons/lang3/StringEscapeUtils.html

答案 1 :(得分:27)

在这里,您只需在应用程序的lib jsoup中添加jar文件,然后使用此代码。

import org.jsoup.Jsoup;

public class Encoder {
    public static void main(String args[]) {
        String s = Jsoup.parse("<Français>").text();
        System.out.print(s);
    }
}

链接下载jsoup:http://jsoup.org/download

答案 2 :(得分:7)

java.net.URLDecoder仅处理application/x-www-form-urlencoded MIME格式(例如“%20”代表空格),而不是HTML character entities。我不认为Java平台上有任何东西。您可以编写自己的实用程序类来进行转换,例如this one

答案 3 :(得分:5)

URL解码器只应用于解码来自html表单生成的URL中的字符串,这些表单位于“application / x-www-form-urlencoded”mime类型中。这不支持html字符。

search我在Translate库中找到HTML Parser课后。

答案 4 :(得分:4)

您可以使用类org.apache.commons.lang.StringEscapeUtils:

String s = StringEscapeUtils.unescapeHtml("Happy & Sad")

它正在发挥作用。

答案 5 :(得分:2)

我不知道使用标准库的任何方法。但我知道并使用这个处理html实体的类。

  

“HTMLEntities是一个开源Java类,包含一组静态方法(htmlentities,unhtmlentities,...),用于将特殊字符和扩展字符转换为HTML权限,反之亦然。”

http://www.tecnick.com/public/code/cp_dpage.php?aiocp_dp=htmlentities

答案 6 :(得分:0)

正如@jem建议的那样,可以使用jsoup。

使用jSoup 1.8.3,可以使用保留原始html的方法 Parser.unescapeEntities

import org.jsoup.parser.Parser;
...
String html = Parser.unescapeEntities(original_html, false);

似乎在之前的某些版本中,此方法不存在。

答案 7 :(得分:0)

或者您可以使用unescapeHtml4:

    String miCadena="GUÍA TELEFÓNICA";
    System.out.println(StringEscapeUtils.unescapeHtml4(miCadena));

此代码打印行: GUÍATELEFÓNICA