Как вы просто заменяете htmlspecialchars?

#java #android #replace

#java #Android #заменить

Вопрос:

input.replace("amp;amp;", "amp;").replace("amp;<", "<").replace("amp;>", ">").replace("amp;quot;", """);

я использую эту строку кода в качестве конвертера sudo htmlspecialchars. в моем приложении это не должно быть слишком сложным.

по какой-то причине приведенный выше код не заменяет(«amp;», «amp;»), похоже, это ничего не делает.

любой совет?

input = input.replaceAll("[^\x20-\x7e]", "");

я тоже пробовал это.

Комментарии:

1. Пробовал URLDecoder.decode(СТРОКА ДЛЯ ДЕКОДИРОВАНИЯ); ?

2. amp;amp;< ? Упс. Вы действительно хотите, чтобы такого рода вещи были совершенно правильными.

Ответ №1:

В Android есть один класс Html внутри android.text.Html, который вы можете использовать следующим образом:

 Html.fromHtml(any_html_text);
  

Но эта функция вернет составной объект, поэтому используйте

 Spanned spn=Html.fromHtml(any_html_text);
  

Вы можете установить этот составной текст на любую кнопку или текст textview, Надеюсь, это поможет вам.

Смотрите эту ссылку также для справки.

Ответ №2:

Вместо того, чтобы делать это вручную, проверьте класс Html. Вызов Html.fromHtml() должен сделать свое дело.

Ответ №3:

Пытаясь избежать / отменить html путем замены строк самостоятельно, вы можете создать проблемы безопасности в своем приложении (в зависимости от того, что оно делает с выводом). Либо используйте Html.fromHtml, либо из Apache libs org.apache.commons.lang.StringEscapeUtils.unescapeHtml

Комментарии:

1. Я бы настоятельно рекомендовал использовать библиотеку apache commons. Я делал это в прошлом, и это гораздо более полное и беспроблемное решение

Ответ №4:

Это работает —

  public String cleanString(String dirty) {

     return Html.fromHtml(dirty).toString();

    }