在Android中解码HTML实体


Answers:


117

HTML的class是应该做的,但它是说,一切都没有支持。它总是对我有用,但是我从来没有过,所以我不能告诉你这个。尝试Html.fromHtml(yourStr)获取解码后的字符串。


3
看来他们在API级别16中添加了Html.escapeHtml
sFuller 2013年

1
尽管它可以完美工作,但我的代码却相当复杂。为什么没有简单的方法可以做到这一点?
船长赃物

1
@sFuller功能明智fromHtml != escapeHtml(来自Android源代码的AFAICT)
Shubham Chaudhary

1
escapeHtml?但是我想做相反的事情(解码/转义HTML)!
xjcl

21

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));
  }

13

只需使用此代码即可

  Html.fromHtml(String).toString();

希望对你有帮助


让我知道您的结果
2016年

2

您可以按照以下步骤使用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);

1

您可以通过调用从字符串中删除特殊字符

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

您可以像这样从htmlstring将响应转换为字符串– Html.fromHtml(response string here)但是此方法在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 ));
}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.