安卓笔记android WebView乱码解决办法
2015-01-24 09:41
330 查看
@ by moses WebView乱码解决办法
1. 在servlet中 使用 resp.setContentType("text/html;charset=UTF-8") 使用utf-8编码后在发送响应内容
--------------------------------------------------------------------------------------------------------------------
2. 使用 loadDataWithBaseURL(null,String url,"text/html","UTF-8",null);
使用 WebView 的 loadData(detail, "text/html", "UTF-8");出现中文乱码了。
改成 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); 在一些硬件设备上
仍然存在中文乱码的情况,改成 WebView.loadDataWithBaseURL(null, detail, "text/html", "UTF-8", null);
就没问题。具体原因还没有找到,如果有知道的同学,希望你可以@我一下!
--------------------------------------------------------------------------------------------------------------------
3. WebView.getSettings().setDefaultTextEncodingName("UTF-8");
注意:
经过实践,笔者发现,loadData不能加载图片内容,如果要加载图片内容或者获得更强大的Web支持请使用
loadDataWithBaseURL();
1. 在servlet中 使用 resp.setContentType("text/html;charset=UTF-8") 使用utf-8编码后在发送响应内容
--------------------------------------------------------------------------------------------------------------------
2. 使用 loadDataWithBaseURL(null,String url,"text/html","UTF-8",null);
使用 WebView 的 loadData(detail, "text/html", "UTF-8");出现中文乱码了。
改成 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); 在一些硬件设备上
仍然存在中文乱码的情况,改成 WebView.loadDataWithBaseURL(null, detail, "text/html", "UTF-8", null);
就没问题。具体原因还没有找到,如果有知道的同学,希望你可以@我一下!
--------------------------------------------------------------------------------------------------------------------
3. WebView.getSettings().setDefaultTextEncodingName("UTF-8");
注意:
经过实践,笔者发现,loadData不能加载图片内容,如果要加载图片内容或者获得更强大的Web支持请使用
loadDataWithBaseURL();
相关文章推荐
- 安卓学习笔记---解决Android签名混淆后WebView与JS交互失效的问题
- Android 4.0 WebView 使用loadData加载网页乱码之解决办法
- Android 4.0 WebView 使用loadData加载网页乱码之解决办法
- Android WebView中使用loadData时出现的乱码问题解决办法
- 安卓学习笔记---完美解决Android的WebView加载失败(404,500),显示的自定义视图
- [android webview]android webview loadData乱码问题解决方法
- android.webkit.WebView 使用 SINGLE_COLUMN layout algorithm 导致程序意外退出的解决办法
- 【转】 android WebView使用cmwap无法联网解决办法
- 安卓webview中点击输入框没有响应的解决办法
- 如何解决Android WebView出现的乱码问题
- 安卓(Android)surfaceview无法使用gesturedetector的解决办法
- Android webView打不开baidu网页的解决办法
- android WebView使用cmwap无法联网解决办法
- android WebView使用cmwap无法联网解决办法
- Android 使用webview 打不开网页的解决办法
- android webview js alert对话框 不能弹出 解决办法
- 【安卓笔记】android客户端向tomcat服务器发送请求中文乱码问题解决
- [Phonegap+Sencha Touch] 移动开发16 安卓webview中,input输入框不触发backspace回退键事件的解决办法(带来其他bug,作废)
- 关于android webview中访问web页面带有upload上传控件的解决办法
- android webview js alert对话框 不能弹出 解决办法