我正在向服务器发送一些数据,使用
DefaultHttpClient
在响应流中,我得到一个HTML文件。我将流保存为字符串,并将其传递到另一个包含WebView的活动,以便在屏幕上呈现此HTML:
response = httpClient.execute(get);
InputStream is = response.getEntity().getContent();
BufferedReader br = new BufferedReader(new InputStreamReader(is,"utf-8"));
StringBuffer sb = new StringBuffer();
String line;
while((line=br.readLine())!=null){
sb.append(line);
sb.append("\n");
}
is.close();
Intent intent = new Intent(this,Trial.class);
intent.putExtra("trial",sb.toString());
startActivity(intent);
Log.i("SB",sb.toString());
在第二个活动中,加载WebView的代码为:
WebView browser = ((WebView)findViewById(R.id.trial_web));
browser.getSettings().setJavaScriptEnabled(true);
browser.loadData(html,"text/html", "utf-8");
运行此代码时,WebView无法正确呈现HTML内容。它实际上在屏幕上以URL编码格式显示HTML字符串。有趣的是,如果我将记录器输出复制到HTML文件,然后在我的WebView中加载此HTML(使用
webview.loadurl(file:///assets/xyz.html)
)一切正常。
我怀疑字符编码有问题。
这里出什么事了?请帮忙。
谢谢。