我想将以下代码解析为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属性,例如alt
和align
。结果:
<p><img src="http://...jpeg"> Einfachere Navigation in Gebäuden verspricht Indoor Maps von Google. Der Praxis-Test von COMPUTER BILD im Hamburger „Alsterhaus“ 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未删除的地方。结果:
<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>
我知道这个类别有很多帖子,但我找不到解析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
答案 0 :(得分:1)
您确定要使用toHtml吗?看起来你已经有了html,你应该使用Html.fromHtml()甚至一无所有。只需将字符串保持原样并在WebView中显示它?
答案 1 :(得分:1)
如:
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中搜索编码)
答案 2 :(得分:0)
我发现这篇文章,现在可以了:) Android. WebView and loadData
myWebView.loadData(myHtmlString, "text/html; charset=UTF-8", null);
这完美无缺,特别是在Android 4.0上,显然忽略了HTML中的字符编码。 测试2.3和4.0.3。