在 android 中解码 HTML 实体

我需要解码 HTML 实体,例如 from & # 246; to & # 246; and & amp; to & 。

URLEncoder.decode(str)不做这项工作(从% 符号转换)。 TextUtils 有一个 HTMLencode,但没有一个 HTMLdecode。

有解码 HTML 实体的功能吗?

57064 次浏览

应该做到这一点,但据说并不支持所有内容。它总是为我工作,但我从来没有,所以我不能告诉这一个。 尝试 Html.fromHtml(yourStr)获取解码后的字符串。

只需要使用下面的代码就可以实现这一点

  Html.fromHtml(String).toString();

希望这个能帮到你

From Html (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));
}

可以通过调用

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

您可以像这样从 htmlstring 将响应转换为字符串- From Html (响应字符串) 但是这个方法在 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 ));
}

通过以下步骤,您可以使用 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);