0

次のコードをHTMLコードに解析して、で表示したいと思いますWebView。これは問題なく動作しますが...

解析するコード:

<img src="http://...jpeg" alt="„Indoor Maps“ von Google" align="left" style="padding-right:5px">\n\n\nEinfachere Navigation in Gebäuden verspricht Indoor Maps von Google. Der Praxis-Test von COMPUTER BILD im Hamburger „Alsterhaus“ verlief aber kurios.<br>Foto: ComputerBILD<br>

試行1)Html.toHtml(Code)-正常に解析され、img-tagがまだ有効であるテキストの引用符と引用符(引用符)。altただし、やなどの一部のimg属性は削除されましalignた。結果:

<p><img src="http://...jpeg"> Einfachere Navigation in Geb&#228;uden verspricht Indoor Maps von Google. Der Praxis-Test von COMPUTER BILD im Hamburger &#8222;Alsterhaus&#8220; verlief aber kurios.<br>\nFoto: ComputerBILD<br>\n</p>\n

試行2)external library: org.apache.commons.lang3.StringEscapeUtils.escapeHtml4(Code)-解析されたすべてのウムラウトと引用符。引用符を解析すると、img-tagが破損します。今、私はに画像を表示することができませんWebView。削除されていないimg-tags。結果:

&lt;img src=&quot;http://...jpeg&quot; alt=&quot;&bdquo;Indoor Maps&ldquo; von Google&quot; align=&quot;left&quot; style=&quot;padding-right:5px&quot;&gt;\n\n\nEinfachere Navigation in Geb&auml;uden verspricht Indoor Maps von Google. Der Praxis-Test von COMPUTER BILD im Hamburger &bdquo;Alsterhaus&ldquo; verlief aber kurios.&lt;br&gt;Foto: ComputerBILD&lt;br&gt;

このカテゴリの投稿がたくさんあることは知っていますが、htmlコードを解析するためのヘルプが見つからず、属性の引用符に「触れない」ようにしています。私は立ち往生しています。

編集

これは完全なHTMLコードです

    StringBuilder html = new StringBuilder();
    html.append("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">");
    html.append("<html>");
    html.append("<head>");
    html.append("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\">");
    html.append("<title></title>");
    html.append("</head>");
    html.append("<body bgcolor=\"white\" leftmargin=\"0\" topmargin=\"0\">");       
    html.append(CODE AT THE TOP);
    html.append("</body>");
    html.append("</html>");

UTF-8を使用すると、同じ結果が得られました...

webView.loadData(html.toString(), "text/html", "iso-8859-1");

@Christiaan:これは、解析されていないコードをに設定したときの現在の結果です。WebView

4

3 に答える 3

1

toHtmlを使用してもよろしいですか?すでにhtmlを持っているようで、Html.fromHtml()を使用するか、何も使用しないでください。文字列をそのままにして、WebViewに表示しますか?

于 2013-01-21T19:19:26.787 に答える
1

ああ、今ではエンコーディングの問題のように見えます。ソース、HTML、および挿入するこのスニペットでUTF-8を使用してみてください。

のように:

html.append("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">");

webView.loadData(html.toString(), "text/html", "UTF-8");

「CODEATTHTOP」もUTF-8に含まれていることを確認してください。

ソースコードもUTF-8に含まれていることを確認してください(IDEでエンコーディングを検索してください)

于 2013-01-22T10:30:49.767 に答える
0

私はこの投稿を見つけました、今それは動作します:) Android。WebViewとloadData


myWebView.loadData(myHtmlString, "text/html; charset=UTF-8", null);

これは問題なく機能します。特にAndroid4.0では、HTML内の文字エンコードを無視しているようです。2.3および4.0.3でテスト済み。

于 2013-01-22T17:03:29.093 に答える