刚入门Android开发,在用HttpPost方式向服务器发送请求时,遇到编码问题,新手入门的坑,写下分享下,希望对大家有些帮助
首先 content 是我要发送的内容。
用 Httpost发送请求是 服务器接收到的是乱码,
我本身项目用的是默认编码 GBK ,服务器要接收的编码是UTF-8
于是去网上找资料如何从GBK 转UTF-8,
弄了一大堆乱七八糟的都不行,快疯了,
后来我仔细查看我写的HttpPost请求
发现 UrlEncodedFormEntity 这个函数
API 看解析是
An entity composed of a list of url-encoded pairs. This is typically useful while sending an HTTP POST request.
有两个方法函数
坑爹的出现了
没错,我用的是不带参数的那个(自己回去看看是不是没写参数),参数的意义在于你的参数以什么编码方式放进请求体对象中
不指定参数就会使用默认参数
没错 ,就是 “ISO-8859-1”
坑爹啊,网上找的资料转编码 没错,但是不应该在content 转的,应该在UrlEncodedFormEntity函数指定编码方式就OK 的了
把之前弄的转码全部去掉,只修改一个地方
HttpEntity entity = new UrlEncodedFormEntity(defaultParams,HTTP.UTF_8);
就OK了。