3

我正在使用以下 Java 代码创建一些用于显示内容的 HTML。

public String htmlFromArrayList(ArrayList<TSI> a) {

    StringBuilder returnStringBuilder = new StringBuilder();

    for (TSI i : a) {
        returnStringBuilder.append("<h3>");
        returnStringBuilder.append(i.itemTitle);
        returnStringBuilder.append("</h3><p>");
        returnStringBuilder.append(i.itemText);
        returnStringBuilder.append("</p>");
    }

    return returnStringBuilder.toString();
}

加载我使用的字符串

mWebView.loadData(htmlFromArrayList(mSummaryItemArrayList), "text/html", null);

现在这适用于我大约 60% 到 70%ArrayList<TSI>TSI.

The web page at data:text/html;null,%3Cp%E.......p%3E might be temporarily down or it may have moved...

我假设这与字符集中的奇怪字符有关。错误信息是什么意思?

4

1 回答 1

9

您的 i.itemText 或 i.itemTitle 中是否有奇怪的字符,例如百分号、反斜杠或其他非字母字符?如果这样做,将导致“找不到网页”问题。

http://code.google.com/p/android/issues/detail?id=4401

此外,您没有传入编码,请尝试传入“UTF-8”而不是 null。

mWebView.loadData(htmlFromArrayList(mSummaryItemArrayList), "text/html", "utf-8");

可以通过将所有 % 符号替换为 HTML 实体(与号磅 37):(%)来解决此问题。

有报道称,如果将任何汉字输入到您的 webView 中,即使您处理百分号,仍然会出现“找不到页面”的问题。所以解决方法是试试这个:

这适用于一切加上汉字:

mWebView.loadData(URLEncoder.encode(html,"utf-8").replaceAll("\\+"," "), "text/html", "utf-8");

来源 http://code.google.com/p/android-rss/issues/detail?id=15

于 2012-04-25T14:45:01.437 回答