73

我需要解码 HTML 实体,例如来自 ö 至 ö 和 & 到 &。

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

是否有任何用于解码 HTML 实体的功能?

4

5 回答 5

118

Html 类应该这样做,但是据说不支持所有内容。它总是对我有用,但我从来没有 ö 所以我不能告诉这个。尝试Html.fromHtml(yourStr)获取解码后的字符串。

于 2010-05-27T06:57:17.917 回答
24

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));
  }
于 2016-11-29T16:36:52.747 回答
13

只需使用此代码即可

  Html.fromHtml(String).toString();

希望对你有帮助

于 2016-01-28T11:14:24.150 回答
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);
于 2018-12-04T05:55:12.077 回答
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 ));
}
于 2018-03-08T09:19:54.783 回答