安卓HTTPClient如何指定为UTF-8编码
MultipartEntitympEntity=newMultipartEntity();List<BasicNameValuePair>pairs=newArrayLi...
MultipartEntity mpEntity = new MultipartEntity();
List<BasicNameValuePair> pairs = new ArrayList<BasicNameValuePair>();
Iterator<String> iter = pawLs.keySet().iterator();
String key = "";
while (iter.hasNext()) {
key = iter.next();
pairs.add(new BasicNameValuePair(key, pawLs.get(key)));
StringBody par;
try {
par = new StringBody(pawLs.get(key));
mpEntity.addPart(key, par);
} catch (Exception e) {
e.printStackTrace();
}
}
myreq = new HttpPost(url);
try {
//((HttpPost) myreq).setEntity(new UrlEncodedFormEntity(pairs, HTTP.UTF_8));
((HttpPost) myreq).setEntity(mpEntity);
}
catch{.......}
用BasicNameValuePair的我知道怎么指定,但是用MultipartEntity做参数的如何指定编码 展开
List<BasicNameValuePair> pairs = new ArrayList<BasicNameValuePair>();
Iterator<String> iter = pawLs.keySet().iterator();
String key = "";
while (iter.hasNext()) {
key = iter.next();
pairs.add(new BasicNameValuePair(key, pawLs.get(key)));
StringBody par;
try {
par = new StringBody(pawLs.get(key));
mpEntity.addPart(key, par);
} catch (Exception e) {
e.printStackTrace();
}
}
myreq = new HttpPost(url);
try {
//((HttpPost) myreq).setEntity(new UrlEncodedFormEntity(pairs, HTTP.UTF_8));
((HttpPost) myreq).setEntity(mpEntity);
}
catch{.......}
用BasicNameValuePair的我知道怎么指定,但是用MultipartEntity做参数的如何指定编码 展开
2个回答
展开全部
在http头的Content-Type字段可能会包含字符编码信息。例如可能返回的头会包含这样子的信息:Content-Type: text/html; charset=UTF-8。这个头信息表明该页的编码是UTF-8,
设置在http头的Content-Type的字符编码:httpClient.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "UTF-8");
对于象xml或者html这样的文件,允许作者在页面中直接指定编码类型。比如在html中会有<meta http-equiv="Content-Type" content="text/html; charset=gb2312"/>这样的标签;或者在xml中会有<?xml version="1.0" encoding="gb2312"?>这样的标签,在这些情况下,可能与http头中返回的编码信息冲突,需要用户自己判断到底那种编码类型应该是真正的编码。
可能有效:String ret = new String(postMethod.getResponseBodyAsString().getBytes("UTF-8"));
设置在http头的Content-Type的字符编码:httpClient.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "UTF-8");
对于象xml或者html这样的文件,允许作者在页面中直接指定编码类型。比如在html中会有<meta http-equiv="Content-Type" content="text/html; charset=gb2312"/>这样的标签;或者在xml中会有<?xml version="1.0" encoding="gb2312"?>这样的标签,在这些情况下,可能与http头中返回的编码信息冲突,需要用户自己判断到底那种编码类型应该是真正的编码。
可能有效:String ret = new String(postMethod.getResponseBodyAsString().getBytes("UTF-8"));
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
Storm代理
2023-07-25 广告
2023-07-25 广告
StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,IP...
点击进入详情页
本回答由Storm代理提供
展开全部
CustomMultiPartEntity entity=new CustomMultiPartEntity(HttpMultipartMode.BROWSER_COMPATIBLE,null,Charset.forName("UTF-8"),listener);
entity.addPart(title, new StringBody(message,Charset.forName("UTF-8")));
entity.addPart(title, new StringBody(message,Charset.forName("UTF-8")));
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询