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 仍然有效(引号)。但是删除了一些 img 属性,例如altalign。结果:

<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

啊,现在它看起来像一个编码问题。尝试在您的源代码、html 和要插入的此代码段中使用 UTF-8。

如:

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

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

确保“顶部代码”也是 UTF-8 格式。

确保您的源代码也是 UTF-8(在您的 ide 中搜索 Encoding)

于 2013-01-22T10:30:49.767 回答
1

您确定要使用 toHtml 吗?看起来你已经有了 html,你应该使用 Html.fromHtml() 甚至什么都不用。只是保持字符串原样并将其显示在 WebView 中?

于 2013-01-21T19:19:26.787 回答
0

我找到了这篇文章,现在它可以工作了:) Android。WebView 和 loadData


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

这可以完美运行,尤其是在 Android 4.0 上,它显然忽略了 HTML 中的字符编码。在 2.3 和 4.0.3 上测试。

于 2013-01-22T17:03:29.093 回答