关于WebView无法加载含中文的链接

WebView是android开发中经常遇到的控件,调用webview.loadUrl(String str)函数时,当链接str中包含中文时,则会无法访问,比如:

String urlStr = "http://218.241.27.245:8080/myFate/zhishidiaoyue/摆件/shengxiao_gou.html";
webview.loadUrl(urlStr);

此时便会无法访问,解决这个问题的关键在于编码问题,通过调试可知在android客户端并不存在编码问题由于urlStr也是指向服务器中文件,由服务器接收客户端请求链接,此时编码可能会出现问题,因此问题可能出在服务器端。

**

解决方法:

**
如果服务器容器采用的是tomcat,那么编码就应存在于tomcat的配置文件中,解决步骤:
1. 首先进入服务器;
2. 打开tomcat安装目录 -> conf文件夹 -> server.xml;
3. 找到如下代码段:

<Connector executor="tomcatThreadPool"
               port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

要设置GET的编码,在相应的端口(此处楼主使用的是8080端口)的Connector的属性:URIEncoding=”UTF-8”,这样,GET方式提交的数据才会被正确解码,修改为:

<Connector executor="tomcatThreadPool"
               port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" URIEncoding="UTF-8"/>

4.重启tomcat,完成。

当然,如果你是使用其他服务器容器,也可以做类似的修改,同时也注意自己的服务器端代码对于请求字符的编解码的结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值