Zmagam się z wyświetlaniem ciągu HTML w Android WebView.
Po stronie serwera pobrałem stronę internetową i uniknąłem znaków HTML i cudzysłowów (użyłem Pythona):
my_string = html.escape(my_string, True)
Po stronie klienta Androida: ciągi znaków są usuwane przez:
myString = StringEscapeUtils.unescapeHtml4(myString)
webview.loadData( myString, "text/html", "encoding");
Jednak webview wyświetla je tylko jako ciągi literalne. Oto wynik:
Edycja: dodaję oryginalny ciąg zwrócony ze strony serwera:
link rel = & quot; ikona-apple-touch & quot; rozmiary = „114x114” href = & quot; /static/favicon/apple-touch-icon-114x114.png" & gt; & lt; link rel = & quot; ikona apple-touch & quot; rozmiary = „72x72” href = & bdquo; /static/favicon/apple-touch-icon-72x72.png" & gt; & lt; link rel = & quot; ikona apple-touch & quot; rozmiary = „144x144” href = & quot; /static/favicon/apple-touch-icon-144x144.png" & gt; & lt; link rel = & quot; ikona apple-touch & quot; rozmiary = „60x60” href = & bdquo; /static/favicon/apple-touch-icon-60x60.png" & gt; & lt; link rel = & quot; ikona apple-touch & quot; rozmiary = „120x120” href = & quot; /static/favicon/apple-touch-icon-120x120.png" & gt; & lt; link rel = & rdquo; ikona-Apple-touch & quot; rozmiary = & bdquo; 76x76 & rdquo; href = & quot; /static/favicon/apple-touch-icon-76x76.png" & gt; & lt; link rel = & quot; ikona apple-touch & quot; rozmiary = „152x152” href = & bdquo; /static/favicon/apple-touch-icon-152x152.png" & gt; & lt; link rel = & quot; ikona apple-touch & quot; rozmiary = „180x180” href = & bdquo; /static/favicon/apple-touch-icon-180x180.png" & gt; & lt; link rel = & quot; ikona & rdquo; type = & bdquo; obraz / png & rdquo; href = & bdquo; /static/favicon/favicon-192x192.png" rozmiary = „192x192” & gt; & lt; link rel = & quot; ikona & rdquo; type = & bdquo; obraz / png & rdquo; href = & bdquo; /static/favicon/favicon-160x160.png" rozmiary = „160x160” & gt; & lt; link rel = & rdquo; ikona & rdquo; type = & bdquo; obraz / png & rdquo; href = & bdquo; /static/favicon/favicon-96x96.png" rozmiary = „96x96” & gt; & lt; link rel = & quot; ikona & rdquo; type = & bdquo; obraz / png & rdquo; href = & bdquo; /static/favicon/favicon-16x16.png" rozmiary = „16x16” & gt; & lt; link rel = & quot; ikona & rdquo; type = & bdquo; obraz / png & rdquo; href = & bdquo; /static/favicon/favicon-32x32.png" rozmiary = „32x32” & gt; & lt; meta name = & quot; msapplication-TileColor & rdquo; content = & quot; # da532c & quot; & gt; & lt; meta name = & bdquo; msapplication-TileImage & rdquo; content = & quot; /static/favicon/mstile-144x144.png" & gt; & lt; meta name = & bdquo; msapplication-config & rdquo; content = & bdquo; /static/favicon/browserconfig.xml" & gt; & lt;! - Zewnętrzny arkusz CSS - & gt; & lt; link rel = & bdquo; arkusz stylów & rdquo; href = & bdquo;https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css& quot; & gt; & lt;! - Czcionki zewnętrzne - & gt; & lt; link href = & quot; // maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" rel = & bdquo; arkusz stylów & rdquo; & gt; & lt; link href = & # x27; // fonts.googleapis.com/css?family=Open+Sans:300,600' rel = & # x27; arkusz stylów & # x27; type = & # x27; text / css & # x27; & gt; & lt; link href = & # x27; // fonts.googleapis.com/css?family=Lora:400,700' rel = & # x27; arkusz stylów & # x27; type = & # x27; text / css & # x27; & gt; & lt;! - [jeśli 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 witryny - & gt; & lt; link rel = & bdquo; arkusz stylów & rdquo; type = & bdquo; text / css & rdquo; href = & bdquo; /static/css/style.css" & gt; & lt; link rel = & bdquo; arkusz stylów & rdquo; type = & bdquo; text / css & rdquo; href = & quot; /static/css/glyphicon.css" & gt; & lt; / head & gt; & lt; body & gt; & lt; div class = & quot; kontener-strona-artykułu & quot; & gt; & lt; div class = & quot; row & 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; / head & gt; & lt; body & gt; & lt; div class = & quot; kontener-strona-artykułu & quot; & gt; & lt; div class = & quot; row & 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; / head & gt; & lt; body & gt; & lt; div class = & quot; kontener-strona-artykułu & quot; & gt; & lt; div class = & quot; row & 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 mówi, że Ted Cruz jest & amp; # 39; absolutnie niezdolny & amp; # 39; Do uruchomienia w biurze z powodu widoków zmian klimatu & lt; / a & gt; & lt; / h2 & gt; & lt; h4 & gt; Sam Levine & lt; / h4 & gt; & lt; div class = & quot; artykuł & quot; & gt; & lt; p & gt; Gubernator Kalifornii Jerry Brown (D) powiedział w niedzielę, że teksański senator Ted Cruz (R-Teksas) jest „absolutnie niezdolny do ubiegania się o urząd” ze względu na jego stanowisko w sprawie zmian klimatu. & lt; / p & gt; & lt; p & gt; „Właśnie wróciłem z New Hampshire, gdzie wszędzie jest śnieg i lód. Mój pogląd na to jest prosty: debaty na ten temat powinny opierać się na nauce i danych, a wielu alarmistów na temat globalnego ocieplenia, mają problem, ponieważ nauka ich nie wspiera, Cruz & lt; a href = & quot;https://www.youtube.com/watch?v=m0UJ_Sc0Udk & quot; & gt; powiedział & lt; / a & gt; w programie & bdquo; Late Night with Seth Meyers & rdquo; w zeszłym tygodniu. & lt; / p & gt; & lt; p & gt; Na poparcie swojego twierdzenia Cruz przywołał dane satelitarne, które wykazały brak znaczącego ocieplenia w ciągu ostatnich 17 lat. Ale rozumowanie Cruz & lt; a href = & bdquo; http://www.politifact.com/truth-o-meter/statements/2015/mar/20 / ted-cruz / ted-cruzs-worlds-fire-not-last-17-years / & quot; & gt; obalony przez Politifact & lt; / a & gt;, który wykazał, że naukowcy mają wystarczające dowody na to, że klimat będzie się nadal ocieplał. & lt; / p & gt; & lt; p & gt; „To, co powiedział, jest absolutnie fałszywe” - powiedział Brown na stronie & lt; a href = & bdquo; http://www.nbcnews.com/meet-the-press/california-governor-ted-cruz-http://climate.nasa.gov/scientific-consensus/ unfit-be-running-n328046 & quot; & gt; NBC & # x27; s & quot; Poznaj prasę & quot; & quot; & lt; / a & gt; Dodał, że & lt; a href = & quot; & quot; & gt; ponad 90 procent & lt; / a & gt; naukowców badających klimat zgadza się, że zmiany klimatyczne są spowodowane działalnością człowieka. `` Ten człowiek świadczy o takim poziomie ignorancji i bezpośrednim fałszowaniu istniejących danych naukowych. To szokujące i myślę, że człowiek stał się absolutnie niezdolny do ubiegania się o urząd ''. - powiedział Brown. & Lt; / p & gt; & lt; p & gt; Brown dodał, że zmiana klimatu ma & lt; a href = & quot; http://www.huffingtonpost.com/2015/03/06/california-drought-feb February- February- record_n_6820704.html? utm_hp_ref = california-susz & quot; & gt; spowodował susze w jego stanie & lt; / a & gt;, a także dotkliwe zimno i burze na wschodnim wybrzeżu. & lt; / p & gt; & lt; p & gt; Chociaż Cruz mógł widzieć śnieg i lód w całym New Hampshire,http://www.huffingtonpost.com/2015/02/19/cold-weather- winter_n_6713104.html & quot; & gt; cieplejszy niż przeciętny & lt; / a & gt; zima. & lt; / p & gt; Krytyka & lt; p & gt; Browna pod adresem Cruza pojawia się na dzień przed tym, jak senator z Teksasu ma ogłosić & lt; a href = & quot; http://www.huffingtonpost.com/2015/03/22 /ted-cruz-2016_n_6917824.html"> kampania prezydencka & lt; / a & gt ;. & lt; / p & gt; & lt; / div & gt; http://www.huffingtonpost.com/2015/03/22/ted-cruz-climate-change_n_6919002.html& quot; & gt; WYŚWIETL ORYGINAŁ & 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; skrypt & gt; (function (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)}) (okno, dokument, & # x27; skrypt & # x27;, & # x27; // www. google-analytics.com/analytics.js','ga'); ga (& # x27; create & # x27 ;, & # x27; UA-56257533-1 & # x27 ;, & # x27; auto & # x27;); ga (& # x27; send & # x27 ;, & # x27; pageview & # x27;); & lt; / script & gt; & lt; / body & gt; & lt; / html & gt; ”