J'ai du mal avec la chaîne d'affichage HTML dans Android WebView.
Côté serveur, j'ai téléchargé une page Web et échappé des caractères HTML et des guillemets (j'ai utilisé Python):
my_string = html.escape(my_string, True)
Côté client Android: les chaînes ne sont pas échappées par:
myString = StringEscapeUtils.unescapeHtml4(myString)
webview.loadData( myString, "text/html", "encoding");
Cependant, la vue Web les affiche simplement sous forme de chaînes littérales. Voici le résultat:
Edit: j'ajoute la chaîne d'origine renvoyée du côté serveur:
link rel = & quot; apple-touch-icon & quot; tailles = & quot; 114x114 & quot; href = & quot; /static/favicon/apple-touch-icon-114x114.png" & gt; & lt; link rel = & quot; apple-touch-icon & quot; tailles = & quot; 72x72 & quot; href = & quot; /static/favicon/apple-touch-icon-72x72.png" & gt; & lt; link rel = & quot; apple-touch-icon & quot; tailles = & quot; 144x144 & quot; href = & quot; /static/favicon/apple-touch-icon-144x144.png" & gt; & lt; link rel = & quot; apple-touch-icon & quot; tailles = & quot; 60x60 & quot; href = & quot; /static/favicon/apple-touch-icon-60x60.png" & gt; & lt; link rel = & quot; apple-touch-icon & quot; tailles = & quot; 120x120 & quot; href = & quot; /static/favicon/apple-touch-icon-120x120.png" & gt; & lt; link rel = & quot; icône tactile pomme & quot; tailles = & quot; 76x76 & quot; href = & quot; /static/favicon/apple-touch-icon-76x76.png" & gt; & lt; link rel = & quot; apple-touch-icon & quot; tailles = & quot; 152x152 & quot; href = & quot; /static/favicon/apple-touch-icon-152x152.png" & gt; & lt; link rel = & quot; apple-touch-icon & quot; tailles = & quot; 180x180 & quot; href = & quot; /static/favicon/apple-touch-icon-180x180.png" & gt; & lt; link rel = & quot; icône & quot; type = & quot; image / png & quot; href = & quot; /static/favicon/favicon-192x192.png" tailles = & quot; 192x192 & quot; & gt; & lt; link rel = & quot; icône & quot; type = & quot; image / png & quot; href = & quot; /static/favicon/favicon-160x160.png" tailles = & quot; 160x160 & quot; & gt; & lt; link rel = & quot; icône & quot; type = & quot; image / png & quot; href = & quot; /static/favicon/favicon-96x96.png" tailles = & quot; 96x96 & quot; & gt; & lt; link rel = & quot; icône & quot; type = & quot; image / png & quot; href = & quot; /static/favicon/favicon-16x16.png" tailles = & quot; 16x16 & quot; & gt; & lt; link rel = & quot; icône & quot; type = & quot; image / png & quot; href = & quot; /static/favicon/favicon-32x32.png" tailles = & quot; 32x32 & quot; & gt; & lt; meta name = & quot; msapplication-TileColor & quot; content = & quot; # da532c & quot; & gt; & lt; meta name = & quot; msapplication-TileImage & quot; content = & quot; /static/favicon/mstile-144x144.png" & gt; & lt; meta name = & quot; msapplication-config & quot; content = & quot; /static/favicon/browserconfig.xml" & gt; & lt;! - CSS externe - & gt; & lt; link rel = & quot; feuille de style & quot; href = & quot;https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css& quot; & gt; & lt;! - Polices externes - & gt; & lt; link href = & quot; // maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" rel = & quot; feuille de style & quot; & gt; & lt; link href = & # x27; // fonts.googleapis.com/css?family=Open+Sans:300,600' rel = & # x27; feuille de style & # x27; type = & # x27; texte / css & # x27; & gt; & lt; lien href = & # x27; // fonts.googleapis.com/css?family=Lora:400,700' rel = & # x27; feuille de style & # x27; type = & # x27; texte / css & # x27; & gt; & lt;! - [si lt IE 9] & gt; & lt; script src = & quot; // cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js"></script> & lt; script src = & quot; // cdnjs.cloudflare.com/ajax/libs/respond.js/1.4.2/respond.min.js"></script> & lt ;! [endif] - & gt; & lt;! - CSS du site - & gt; & lt; link rel = & quot; feuille de style & quot; type = & quot; texte / css & quot; href = & quot; /static/css/style.css" & gt; & lt; link rel = & quot; feuille de style & quot; type = & quot; texte / css & quot; href = & quot; /static/css/glyphicon.css" & gt; & lt; / tête & gt; & lt; corps & gt; & lt; div class = & quot; page-article du conteneur & quot; & gt; & lt; div class = & quot; ligne & quot; & gt; & lt; div class = & quot; col-md-8 col-md-offset-2 & quot; & gt; & lt; h2 & gt; & lt; a href = & quot; quot; href = & quot; /static/css/glyphicon.css" & gt; & lt; / tête & gt; & lt; corps & gt; & lt; div class = & quot; page-article du conteneur & quot; & gt; & lt; div class = & quot; ligne & quot; & gt; & lt; div class = & quot; col-md-8 col-md-offset-2 & quot; & gt; & lt; h2 & gt; & lt; a href = & quot; quot; href = & quot; /static/css/glyphicon.css" & gt; & lt; / tête & gt; & lt; corps & gt; & lt; div class = & quot; page-article du conteneur & quot; & gt; & lt; div class = & quot; ligne & quot; & gt; & lt; div class = & quot; col-md-8 col-md-offset-2 & quot; & gt; & lt; h2 & gt; & lt; a href = & quot;http://www.huffingtonpost.com/2015/03/22/ted-cruz-climate-change_n_6919002.html & quot; & gt; Gov. Jerry Brown dit que Ted Cruz est & amp; # 39; absolument inapte & amp; # 39; Pour se présenter au bureau en raison du changement climatique Vues & lt; / a & gt; & lt; / h2 & gt; & lt; h4 & gt; Sam Levine & lt; / h4 & gt; & lt; div class = & quot; article & quot; & gt; & lt; p & gt; Le gouverneur de Californie, Jerry Brown (D), a déclaré dimanche que le sénateur du Texas Ted Cruz (R-Texas) était «absolument inapte à se présenter aux élections». en raison de sa position sur le changement climatique. & lt; / p & gt; & lt; p & gt; `` Je viens de rentrer du New Hampshire, où il y a de la neige et de la glace partout. Mon point de vue à ce sujet est simple: les débats à ce sujet devraient suivre la science et devraient suivre les données, et de nombreux alarmistes sur le réchauffement climatique, ils ont un problème parce que la science ne les soutient pas, & # x27; Cruz & lt; a href = & quot;https://www.youtube.com/watch?v=m0UJ_Sc0Udk & quot; & gt; a déclaré & lt; / a & gt; sur "Late Night with Seth Meyers" la semaine dernière. & lt; / p & gt; & lt; p & gt; Pour étayer son affirmation, Cruz a cité des données satellites qui ont montré un manque de réchauffement significatif au cours des 17 dernières années. Mais le raisonnement de Cruz & # x27; & lt; a href = & quot; http://www.politifact.com/truth-o-meter/statements/2015/mar/20 / ted-cruz / ted-cruzs-worlds-fire-not-last-17-years / & quot; & gt; a été démystifié par Politifact & lt; / a & gt ;, qui a montré que les scientifiques ont de nombreuses preuves pour croire que le climat continuera à se réchauffer. & lt; / p & gt; & lt; p & gt; & quot; Ce qu'il a dit est absolument faux », a déclaré Brown sur & lt; a href = & quot; http: //www.nbcnews. inapte-be-running-n328046 & quot; & gt; NBC & # x27; s & quot; Rencontrez la presse. & quot; & lt; / a & gt; Il a ajouté que & lt; a href = & quot; http://climate.nasa.gov/scientific-consensus/ & quot; & gt; plus de 90% & lt; / a & gt; des scientifiques qui étudient le climat conviennent que le changement climatique est causé par l'activité humaine. `` Cet homme témoigne d'un tel niveau d'ignorance et d'une falsification directe des données scientifiques existantes. C'est choquant, et je pense que l'homme s'est rendu absolument inapte à se présenter aux élections, '' Brown a dit. & Lt; / p & gt; & lt; p & gt; Brown a ajouté que le changement climatique avait & lt; a href = & quot; http://www.huffingtonpost.com/2015/03/06/california-drought-february- record_n_6820704.html? utm_hp_ref = californie-sécheresse & quot; & gt; a provoqué des sécheresses dans son état & lt; / a & gt;, ainsi que de violents froids et tempêtes sur la côte est. & lt; / p & gt; & lt; p & gt; Alors que Cruz a peut-être vu de la neige et de la glace partout dans le New Hampshire, les données montrent que le pays connaît en fait une situation & lt; a href = & quot; http://www.huffingtonpost.com/2015/02/19/cold-weather- winter_n_6713104.html & quot; & gt; plus chaud que la moyenne & lt; / a & gt; hiver. & lt; / p & gt; & lt; p & gt; Les critiques de Brown à l'encontre de Cruz interviennent un jour avant que le sénateur du Texas ne soit sur le point d'annoncer un & lt; a href = & quot; http://www.huffingtonpost.com/2015/03/22 /ted-cruz-2016_n_6917824.html">campagne présidentielle & lt; / a & gt ;. & lt; / p & gt; & lt; / div & gt; & lt; div class = & quot; original & quot; & gt; & lt; a href = & quot;http://www.huffingtonpost.com/2015/03/22/ted-cruz-climate-change_n_6919002.html& quot; & gt; VOIR L'ORIGINAL & lt; / a & gt; & lt; / div & gt; & lt; / div & gt; & lt; / div & gt; & lt; / div & gt; & lt; script src = & quot; // code.jquery.com/jquery-latest.js"></script> & lt; script src = & quot; /static/js/modal.js" & gt; & lt; / script & gt; & lt; script src = & quot; /static/js/bootbox.min.js" & gt; & lt; / script & gt; & lt; script src = & quot; /static/js/site.js" & gt; & lt; / script & gt; & lt; script & gt; (fonction (i, s, o, g, r, a, m) {i [& # x27; GoogleAnalyticsObject & # x27;] = r; i [r] = i [r] || function () {(i [ r] .q = i [r] .q || []). push (arguments)}, i [r] .l = 1 * new Date (); a = s.createElement (o), m = s. getElementsByTagName (o) [0]; a.async = 1; a.src = g; m.parentNode.insertBefore (a, m)}) (fenêtre, document, & # x27; script & # x27;, & # x27; // www. google-analytics.com/analytics.js','ga'); ga (& # x27; créer & # x27 ;, & # x27; UA-56257533-1 & # x27 ;, & # x27; auto & # x27;); ga (& # x27; envoyer & # x27 ;, & # x27; page vue & # x27;); & lt; / script & gt; & lt; / corps & gt; & lt; / html & gt; "