Android,HTTP请求中文乱码
16lz
2021-01-23
Android,HTTP请求中文乱码 // 编码参数
List<NameValuePair>formparams= newArrayList<NameValuePair>(); // 请求参数
for(NameValuePairp:params){
formparams.add(p);
}
UrlEncodedFormEntityentity= newUrlEncodedFormEntity(formparams,HTTP.UTF_8);
// 创建POST请求
HttpPostrequest= newHttpPost(url);
request.setEntity(entity); Android发送HTTP请求, android默认编码已是utf-8。
问题描述:
如上代码中已经设置了请求为UTF-8,服务器中编码也是全部UTF-8,可是服务器获取中文还是出现乱码。
由于服务器端并非自己开发,无法看到服务器是如何运行的,只知道编码是UTF-8。
同样的服务器,IPHONE客户端发送中文无乱码。
问题解决:
尝试打印Andorid,IPHONE的HTTP头。
发现其中的content-type 不一样。
Andorid:content-type:application/x-www-form-urlencoded;
IPHONE:content-type:application/x-www-form-urlencoded; charset=utf-8
于是尝试在请求的时候加个头
request.setHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
然后问题解决。
List<NameValuePair>formparams= newArrayList<NameValuePair>(); // 请求参数
for(NameValuePairp:params){
formparams.add(p);
}
UrlEncodedFormEntityentity= newUrlEncodedFormEntity(formparams,HTTP.UTF_8);
// 创建POST请求
HttpPostrequest= newHttpPost(url);
request.setEntity(entity); Android发送HTTP请求, android默认编码已是utf-8。
问题描述:
如上代码中已经设置了请求为UTF-8,服务器中编码也是全部UTF-8,可是服务器获取中文还是出现乱码。
由于服务器端并非自己开发,无法看到服务器是如何运行的,只知道编码是UTF-8。
同样的服务器,IPHONE客户端发送中文无乱码。
问题解决:
尝试打印Andorid,IPHONE的HTTP头。
发现其中的content-type 不一样。
Andorid:content-type:application/x-www-form-urlencoded;
IPHONE:content-type:application/x-www-form-urlencoded; charset=utf-8
于是尝试在请求的时候加个头
request.setHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
然后问题解决。
更多相关文章
- Android实现远程控制PC(Android[客户端]+Qt[服务器端])
- Android日志打印与处理 UncaughtExceptionHandler 提交服务器
- Android中文API(136) —— GeoCoder
- Android中文API(136) —— Bitmap
- Android中文API(132) —— GpsSatellite
- Android中文API(134) —— Account