如何解决Android WebView出现的乱码问题
2014-12-09 16:08
519 查看
http://blog.sina.com.cn/s/blog_5da93c8f01011azl.html
使用webView载入网页,主要有三种方法:
1、webView.loadUrl();
直接显示网页内容(单独显示网络图片),一般不会出现乱码。
2、webView.loadData(data, "text/html", "UTF-8");
loadData主要被设计用来装载URI格式的数据,它不能通过网络来加载内容。网上流传的webview加载中文出现乱码,多数是使用此方法。使用过程中主要有两个问题:
(1)loadData不能加载图片内容,如果想加载图片内容或者获得更强大的Web支持建议使用更强大的loadDataWithBaseURL.
(2) 许多实用loadData方法的朋友都遇到显示乱码的问题,那是因为编码器设置错误导致的。我们知道String类型的数据主要是unicode编码,而WebView一般为了节省资源使用的是UTF-8编码,所以我们在loadData的时候要告诉方法怎样转码。即要告诉它要将unicode编码的内容转成UTF-8编码的内容。有些朋友虽然在loadData的时候设置了编码方式,但是还是显示乱码,这是因为还需要为WebView的text编码指定编码方式。举例如下:
WebView wv = (WebView)findViewById(R.id.webview) ;
wv.getSettings().setDefaultTextEncodingName(“UTF
-8”) ;
wv.loadData(content, “text/html”, “UTF-8”) ;
注意为gb2312或gbk
(3).网页说明编码格式
<meta http-equiv="Content-Type" content="text/html;charset=gb2312">
以上两种方法是网上给的比较好的方法,但是我都试了下都没有解决我的乱码问题。
原来我是用LoadData方法来解析html的,但是据说这是官方的一个BUG,不能用来解析中文。所以绕其道而行之,采用loadDataWithBaseURL的方法,其中codeingType设置为utf-8就OK了。
3、loadDataWithBaseURL
如果单纯显示文字的话可以写webView.loadDataWithBaseURL(null, string, "text/html", "utf-8", null);
如果要显示图片可以写webView.loadDataWithBaseURL(baseUrl, string, "text/html", "utf-8", null);
其中baseUrl为你存储照片的路径,比如:
String baseUrl="file:///sdcard/images/photo/";
这个方法却能很好解决乱码问题,遇到这个问题的朋友不妨一时。
4000
使用webView载入网页,主要有三种方法:
1、webView.loadUrl();
直接显示网页内容(单独显示网络图片),一般不会出现乱码。
2、webView.loadData(data, "text/html", "UTF-8");
loadData主要被设计用来装载URI格式的数据,它不能通过网络来加载内容。网上流传的webview加载中文出现乱码,多数是使用此方法。使用过程中主要有两个问题:
(1)loadData不能加载图片内容,如果想加载图片内容或者获得更强大的Web支持建议使用更强大的loadDataWithBaseURL.
(2) 许多实用loadData方法的朋友都遇到显示乱码的问题,那是因为编码器设置错误导致的。我们知道String类型的数据主要是unicode编码,而WebView一般为了节省资源使用的是UTF-8编码,所以我们在loadData的时候要告诉方法怎样转码。即要告诉它要将unicode编码的内容转成UTF-8编码的内容。有些朋友虽然在loadData的时候设置了编码方式,但是还是显示乱码,这是因为还需要为WebView的text编码指定编码方式。举例如下:
WebView wv = (WebView)findViewById(R.id.webview) ;
wv.getSettings().setDefaultTextEncodingName(“UTF
-8”) ;
wv.loadData(content, “text/html”, “UTF-8”) ;
注意为gb2312或gbk
(3).网页说明编码格式
<meta http-equiv="Content-Type" content="text/html;charset=gb2312">
以上两种方法是网上给的比较好的方法,但是我都试了下都没有解决我的乱码问题。
原来我是用LoadData方法来解析html的,但是据说这是官方的一个BUG,不能用来解析中文。所以绕其道而行之,采用loadDataWithBaseURL的方法,其中codeingType设置为utf-8就OK了。
3、loadDataWithBaseURL
如果单纯显示文字的话可以写webView.loadDataWithBaseURL(null, string, "text/html", "utf-8", null);
如果要显示图片可以写webView.loadDataWithBaseURL(baseUrl, string, "text/html", "utf-8", null);
其中baseUrl为你存储照片的路径,比如:
String baseUrl="file:///sdcard/images/photo/";
这个方法却能很好解决乱码问题,遇到这个问题的朋友不妨一时。
4000
相关文章推荐
- 如何解决Android WebView出现的乱码问题
- 如何解决Android WebView出现的乱码问题
- Android WebView中使用loadData时出现的乱码问题解决办法
- Android开发之如何在WebView中点击链接使用自身打开(解决出现的选择使用第三方应用的问题)
- android webview显示html代码出现乱码的问题解决
- android webView.loadData乱码问题的解决
- 彻底解决Android WebView中文乱码的问题
- 解决android 6.0 webview加载https出现空白页问题
- android用webview加载H5页面出现点击事件失效的问题解决
- Android webview loaddata乱码问题解决
- [android webview]android webview loadData乱码问题解决方法
- android webview 如何去广告和如何解决重定向返回的问题。
- Android WebView 解决html中文乱码问题
- android webview loadData乱码问题解决方法
- webView.loadUrl("file:///android_asset/table3.html")出现中文乱码的问题
- android 橘子汁--WebView loadData 解决乱码问题
- Android WebView加载出现空白页面问题解决
- 解决Android WebView 乱码问题
- Android之解决用webView控件展示快递100查询物流出现错误的问题
- android Webview中注入js,用于解决第三方页中出现返回事件window.history.go(-1),无法响应问题