Подтвердить что ты не робот

Преобразование символов HTML в текст с помощью стандартной библиотеки Java

Я хотел бы преобразовать некоторые символы HTML в текст, используя стандартную библиотеку Java. Мне было интересно, сможет ли какая-нибудь библиотека достичь моей цели?

/**
 * @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) {

    }
}
4b9b3361

Ответ 2

Здесь вам нужно просто добавить jar файл в lib jsoup в ваше приложение, а затем использовать этот код.

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

Ответ 3

java.net.URLDecoder касается только формата application/x-www-form-urlencoded MIME (например, "%20" представляет пробел), а не с HTML-символьные объекты. Я не думаю, что на платформе Java есть что-то. Вы можете написать свой собственный класс утилиты для преобразования, например этот.

Ответ 4

Декодер URL должен использоваться только для декодирования строк из URL-адресов, сгенерированных форматами html, которые находятся в типе mime-типа application/x-www-form-urlencoded. Это не поддерживает html-символы.

После search я нашел Translate в библиотеке HTML Parser.

Ответ 5

Вы можете использовать класс org.apache.commons.lang.StringEscapeUtils:

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

Он работает.

Ответ 6

Я не знаю, как это сделать, используя стандартную библиотеку. Но я знаю и использую этот класс, который имеет дело с объектами html.

"HTMLEntities - это открытый Java-класс, содержащий набор статических методов (htmlentities, unhtmlentities,...) для преобразования специальных и расширенных символов в HTML-разрешения и наоборот.

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

Ответ 7

Или вы можете использовать unescapeHtml4:

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

Этот код печатает строку: GUÍA TELEFÓNICA

Ответ 8

Как показано в @jem, можно использовать jsoup.

С jSoup 1.8.3 можно использовать метод Parser.unescapeEntities, который сохраняет исходный html.

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

Похоже, что в предыдущем выпуске этого метода нет.