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

Che*_*eng 40 html java 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) {

    }
}
Run Code Online (Sandbox Code Playgroud)

Bil*_*l.D 58

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


小智 28

在这里,您只需在应用程序中的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);
    }
}
Run Code Online (Sandbox Code Playgroud)

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


Zac*_*ena 7

java.net.URLDecoder仅处理application/x-www-form-urlencodedMIME格式(例如"%20"表示空格),而不处理HTML字符实体.我不认为Java平台上有任何东西.您可以编写自己的实用程序类来进行转换,就像这样.


小智 5

URL解码器只应用于解码由"application/x-www-form-urlencoded"mime类型的html表单生成的URL中的字符串.这不支持html字符.

一个经过搜索,我发现一个翻译的类内的HTML解析器库.