在android中从URL读取数据时无法读取特殊字符

时间:2013-04-09 15:00:58

标签: android webview

我正在读取URL中的内容并修改字符串并再次在Webview中加载数据。但它无法正确加载。接受scrrenshot。任何猜测

WebSettings settings = webView.getSettings();
        settings.setDefaultTextEncodingName("utf-8");
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.FROYO) {
            String base64 = Base64.encodeToString(benefitsCore.getBytes(), Base64.DEFAULT);
            webView.loadData(base64, "text/html; charset=utf-8", "base64");
        } else {
            String header = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>";
            webView.loadData(header + benefitsCore, "text/html; chartset=UTF-8", null);
        }

enter image description here

private String rzBenefitsCoreText() {
    String rzCoreText = null;
    try {
        URL url = new URL(getActivity().getResources().getString(R.string.bby_rz_sliver_benefits_url));
        BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream()));//"ISO-8859-1")
        StringBuilder builder = new StringBuilder();
        String inputLine;
        while ((inputLine = br.readLine()) != null)
        builder.append(inputLine);
        rzCoreText = builder.toString().replace("Silver member", "Core member");
        Log.i("Data:", rzCoreText);
        br.close();
    } catch (MalformedURLException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    return rzCoreText;
}

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。它基于手机上的字体。我的意思是,如果你在调试器中查找字符串没有任何错误,但在我的情况下,字体没有涵盖与我的文本相关的所有unicode字符,所以有些字符没有像你的那样正确显示。 可能正在使用其他字体帮助您解决此案例。