Android http post 中文乱码问题的解决

时间:2015/10/16 15:20:00来源:互联网 作者:flyso 点击: 1721 次

最近的项目中,要在安卓客户端填写信息,发送至服务器,用的是HTTP POST 方法,但是后台出现了中文乱码,内容如下:


服务器收到的数据如下:

【内容1】

{"content":"?????????","townId":"14","companyId":"8","date":"2014-12-27","supervisor":"??","userId":0}

这个功能除了在安卓客户端做之外,在网页版系统中也有,在网页中提交的数据(正常显示)如下:

【内容2】

{"companyId":8,"townId":14,"supervisor":"璋㈠姏","content":"鍛樺伐涓氬姟姘村钩鏈夊緟鎻愰珮","date":"2014-12-28","userId":1}


这段POST数据,共有6个参数,其中,出现了中文的部分就是乱码。

那就看看在安卓客户端的POST代码中有什么问题:

  1. postData = ....//组织postData的内容  
  2. httpPost.setEntity(new StringEntity(postData.toString()));  


好了似乎看不出什么问题,不过网上查一下,很快就发现了问题,安卓客户端的POST需要指定编码,不是网页上那种Form的POST。因此,将代码改为:

  1. postData = ....//组织postData的内容  
  2. httpPost.setEntity(new StringEntity(postData.toString(), HTTP.UTF_8));  


指定UTF8编码。

然后重新测试,后台的输出为:

{"content":"鍛樺伐涓氬姟姘村钩鏈夊緟鎻愰珮","townId":"14","companyId":"8","date":"2014-12-27","supervisor":"璋㈠姏","userId":0}

可以看到,和【内容2】一样了。

实际内容为:


好了,问题解决。

编码问题真是无处不在。


Copyright © 2005 - 2016 flyso.cn. 飞搜 版权所有 鄂ICP备11002783号-3