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

来源:互联网 发布:河北工程大学网络 编辑:程序博客网 时间:2024/06/05 17:23

最近的项目中,要在安卓客户端填写信息,发送至服务器,用的是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代码中有什么问题:

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

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

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

指定UTF8编码。

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

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

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

实际内容为:


好了,问题解决。

编码问题真是无处不在。


1 0
原创粉丝点击