Декодировать HTML-объекты в Android - PullRequest
60 голосов
/ 27 мая 2010

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

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

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

Ответы [ 5 ]

107 голосов
/ 27 мая 2010

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

17 голосов
/ 29 ноября 2016

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));
  }
10 голосов
/ 28 января 2016

Просто вы можете сделать это, используя этот код

  Html.fromHtml(String).toString();

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

1 голос
/ 08 марта 2018

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

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 ));
}
0 голосов
/ 04 декабря 2018

вы можете использовать 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);
...