为什么Webview不显示英文以外的字符串?

时间:2013-10-07 08:13:28

标签: android webview

我使用以下代码在android Webview中显示一个字符串:

    webView.loadData(anEnglishString + "<br />" + aPersianString, "text/html", "utf-8");

另请注意,我尝试将“ utf-8 ”替换为:“ unicode ”,“ utf8 ”,“ utf-16 “,” ansi “,...但每次我在WebView中获得以下输出:

  

此消息为英文
%%#: - =%@ + =% - #@ ##%@%

顺便说一句,我也尝试过使用:

    webView.loadDataWithBaseURL(null, ..., null);

以及:

    webView.getSettings().setDefaultTextEncoding();

但是我仍然会为波斯语消息获得相同的有线字符。

3 个答案:

答案 0 :(得分:2)

我最终使用以下代码来解决问题:

    WebView.LoadUrl("data:text/html;charset=UTF-8," + nonEnglishString);

答案 1 :(得分:1)

我也遇到了同样的问题,我解决了这个问题。

你应该这样使用,

try {
                // get input stream for text
                InputStream is = getAssets().open("YOUR HTML.html");//index.html
                // check size
                int size = is.available();
                // create buffer for IO
                byte[] buffer = new byte[size];
                // get data to buffer
                is.read(buffer);
                // close stream
                is.close();
                webView.loadDataWithBaseURL(null, new String(buffer),
                        "text/html", "utf-8", null);
            } catch (IOException e) {
                e.printStackTrace();
            }

答案 2 :(得分:0)

使用它:

  

webview.loadData(html_content,“text / html; charset = utf-8”,“utf-8”);

我测试了它,它确实有用。