Декодировать HTML-объекты в Android

Мне нужно декодировать HTML-объекты, например, из & # 246; ö и & amp; к &.

URLEncoder.decode(str) не выполняет работу (конвертировать из% нотаций). TextUtils имеет HTMLencode, но не HTMLdecode.

Есть ли функция для декодирования HTML-объектов?

6 ответов

Решение

Класс Html должен делать это, однако говорят, что не все поддерживается. Это всегда работало для меня, но у меня никогда не было ö, поэтому я не могу сказать за это. Пытаться Html.fromHtml(yourStr) чтобы получить расшифрованную строку.

Html.fromHtml(String html) устарел после API v24, так что это правильный способ сделать это

  if (Build.VERSION.SDK_INT >= 24)
  {
       textView.setText(Html.fromHtml(htmlString , Html.FROM_HTML_MODE_LEGACY)));  
  }
  else
  {
       textView.setText(Html.fromHtml(htmlString));
  }

Просто вы можете сделать это с помощью этого кода

  Html.fromHtml(String).toString();

Надеюсь, что это поможет вам

Вы можете использовать WebView для простого представления любого HTML-текста, выполнив следующие шаги.

сначала конвертируйте ваши данные в html формат как:

String res=null;
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) {
res=Html.fromHtml(product.getDescription(),Html.FROM_HTML_MODE_COMPACT).toString();
}
else{
res=Html.fromHtml(product.getDescription()).toString();
}

Затем загрузите ваши данные в WebView как:

myWebView.loadDataWithBaseURL(null, res, "text/html", "utf-8", null);

Вы можете удалить специальный символ из строки, вызвав

responsestring.replace(“special char here”, “”);

вы можете преобразовать ответ в строку из htmlstring следующим образом - Html.fromHtml(строка ответа здесь). Но этот метод не рекомендуется использовать в API 24, поэтому вам нужно сделать это правильно.

if (Build.VERSION.SDK_INT >= 24)
{
    post_description.setText(Html.fromHtml( response here , Html.FROM_HTML_MODE_LEGACY));
}
else
{
    post_description.setText(Html.fromHtml( response here ));
}

Чтобы обойти устаревание API v24, вы можете использовать

      HtmlCompat.fromHtml(htmlString, HtmlCompat.FROM_HTML_MODE_COMPACT).toString()
Другие вопросы по тегам