在用HttpClick作为连接向服务器传送数据时中文会出现乱码问题(这里以UTF-8为例)
解决方法
1、 服务端
先将检查Tomcat的编码格式是否设置(Tomcat的编码格式默认的是”IOS-8859-1“),查看tomcat的server.XML文件。
设置如下:
更改tomcat中的server.xml文件,具体位置以自己安装的为准(如我的是 D:\Tomcat\conf\server.xml),指定浏览器的编码格式为“UTF-8”:
方法是找到 server.xml 中的
<Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8" />
粗体字是我添加的,用做标记。
2、客户端
在Android客户端则需要将其链接转化为”UTF-8“编码格式
设置如下:
HttpClient client = new DefaultHttpClient();
HttpParams parm = client.getParams();
//设置超时时间
parm.setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 5000);
parm.setParameter(CoreConnectionPNames.SO_TIMEOUT, 5000);
//设置请求方式,重写的方式
HttpGet httpGet=new HttpGet(params[0]);
//更改编码格式为UTF-8
httpGet.addHeader("Content-Type", "content=text/html; charset=UTF-8");
httpGet.addHeader("charset", HTTP.UTF_8);
HttpResponse response =client.execute(httpGet);