web-dev-qa-db-fra.com

Décoder les entités HTML dans Android

J'ai besoin de décoder des entités HTML, par exemple. de ö à ö, et & amp; à &.

URLEncoder.decode(str) ne fait pas le travail (convertir à partir de% notations). TextUtils a un HTMLencode, mais pas un HTMLdecode.

Existe-t-il une fonction permettant de décoder des entités HTML?

60
johboh

La classe Html est supposée le faire, mais on dit que tout n'est pas supporté. Cela a toujours fonctionné pour moi mais je n’ai jamais eu ö donc je ne peux pas dire pour celui-là . Essayez Html.fromHtml(yourStr) pour obtenir la chaîne décodée.

107
Sephy

Html.fromHtml (String html) est obsolète après API v24, donc c'est la bonne façon de le faire

  if (Build.VERSION.SDK_INT >= 24)
  {
       textView.setText(Html.fromHtml(htmlString , Html.FROM_HTML_MODE_LEGACY)));  
  }
  else
  {
       textView.setText(Html.fromHtml(htmlString));
  }
16
Aalok

Vous pouvez simplement le faire en utilisant ce code

  Html.fromHtml(String).toString();

J'espère que ceci vous aidera

10
saeed

Vous pouvez supprimer un caractère spécial d'une chaîne en appelant 

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

vous pouvez convertir la réponse en chaîne à partir de htmlstring comme celle-ci -

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

vous pouvez utiliser WebView pour représenter n'importe quel texte HTML facilement en suivant les étapes ci-dessous.

convertissez d'abord vos données au format html en tant que:

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

Chargez ensuite vos données dans WebView en tant que: 

myWebView.loadDataWithBaseURL(null, res, "text/html", "utf-8", null);
0
ankitdubey021