码迷,mamicode.com
首页 > Web开发 > 详细

WebView loadData乱码问题

时间:2015-05-06 22:37:07      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:

转自:http://blog.sina.com.cn/s/blog_5da93c8f0101p4y8.html

 

最近做项目的时候用到webview加载 一段 html文本,使用 WebView 的 loadData(detail, "text/html", "UTF-8");测试发现出现中文乱码了,在Google上找到了答案。改成 loadData(data, "text/html; charset=UTF-8", null);就不会乱码

原因如下:
如果用 loadDataWithBaseURL时,如果不传入URL时,刷新会造成白屏,因为刷新时调用的的是reload方法,reload是根据传入的URL进行一次重新加载即再次loadUrl(url),不传入URL时,默认的的URL是about:blank

可以使用loadData,刷新只是从缓存里面取,但是在4.0以上的,如果按照API里所写的loadData(data, “UTF-8”, null);时会乱码,如果写成loadData(data, "text/html; charset=UTF-8", null);loadData最终的机制是会把传入的三个参数拼接在一起,然后再进行loadUrl操作,参数就是data, "text/html; charset=UTF-8", null这三个进行拼装,加入text/html; charset=UTF-8就相当于限定了页面的字符


今天测试的时候,发现 mWebView.loadData(detail,"text/html;charset=UTF-8", null); 在小米 One S上仍然存在中文乱码的情况,改成 WebView.loadDataWithBaseURL(null, detail, "text/html", "UTF-8", null); 就没问题。具体原因还没有找到,如果有知道的同学,希望你可以@我一下!

WebView loadData乱码问题

标签:

原文地址:http://www.cnblogs.com/a0000/p/4483213.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!