web-dev-qa-db-ja.com

androidのHTMLエンティティをデコードします

HTMLエンティティをデコードする必要があります。 #246から。 ö、およびamp;へ。

URLEncoder.decode(str)はジョブを実行しません(%表記から変換)。 TextUtilsにはHTMLencodeがありますが、HTMLdecodeはありません。

HTMLエンティティをデコードする機能はありますか?

60
johboh

Html class はそうすることになっていますが、すべてがサポートされているわけではないと言われています。それはいつも私のために働いたが、私はöを持っていなかったので、私はこれについては言えない。 Html.fromHtml(yourStr)を試して、デコードされた文字列を取得してください。

109
Sephy

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

単にあなたはこのコードを使用してそれを行うことができます

  Html.fromHtml(String).toString();

これがあなたを助けることを願っています

11
saeed

を呼び出すことで、文字列から特殊文字を削除できます

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 ));
}
1
Kamal Bunkar

以下の手順に従って、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
Ankit Dubey