继续奋斗安卓,已经连续好多天在弄安卓的app了,看着自己一点点地写出了一个app,成就感还是挺大的,虽然和我想象中的样子不太一样,并且由于事情太多,一会忙自己的其他事情,同时这个app的时间太赶,所以无法做得太精细,就马马虎虎一边学一边弄。遇到的问题也都挺多的,从一开始的ui更新、网络请求、控件自定义等等,也渐渐从解决问题中学习到更多安卓的内容。
在网络请求的时候,出现了中文乱码,一开始由于虚拟机无法输入中文,都是使用英文字母测试,所以没有能够一开始就发现这个问题,后来由于一次请求用到了中文才发现在后台收到的内容为乱码,但是请求回来得到的数据却没有任何异常。经过排查,在排除掉服务器设置错误、编码不统一等原因之后,才知道原来需要对中文进行转码。
但是奇怪的是,用浏览器来访问的话是没有乱码的,通过安卓来请求的话则出现了乱码。
解决方法如下:
在客户端,对中文进行转码:
String str = URLEncoder.encode("小明","UTF-8");
URL url = new URL(server+"?name="+str);
而在服务器端的tomcat中设置URIEncoding
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
URIEncoding="UTF-8"
redirectPort="8443" />
经测试,一切正常,发送到服务器的中文终于正常了。