kaka_3 2009-10-12 10:53
浏览 440
已采纳

请教httpclient4.0中文乱码的问题

页面返回response里没设置charset,meta里设置了charset=gbk,获取页面出现中文乱码
,httpclient4.0要怎么设置编码啊?网上资料比较少
DefaultHttpClient client = new DefaultHttpClient();
client.getParams().setParameter(HttpProtocolParams.HTTP_CONTENT_CHARSET,"GBK");
以上设置没有用?

代码:
DefaultHttpClient client = new DefaultHttpClient();

    HttpGet httpget = new HttpGet(
            "http://www.ningdaren.com/");

    HttpResponse response = client.execute(httpget);
    HttpEntity entity = response.getEntity();

    System.out.println("登陆前页面返回状态信息----------:");
    System.out.println(response.getStatusLine());
    Header[] headers = response.getAllHeaders(); // 返回的HTTP头信息
    for (int i = 0; i < headers.length; i++) {
        System.out.println(headers[i]);
    }

//返回页面信息
if(entity!= null){
String responseString = new String(EntityUtils.toString(entity).getBytes("gbk"));
System.out.println(responseString);
}

    System.out.println("----------------------------------------");
    if (entity != null) {
        entity.consumeContent();
    }

[b]问题补充:[/b]
具体要怎么设置啊,我试了很多函数都没用。。
httpget.addHeader("Content-Type","application/x-www-form-urlencoded; charset="utf-8")没用啊

  • 写回答

5条回答 默认 最新

  • kun20031029 2009-10-20 14:13
    关注

    把得到的responseString进行下编码就行,如下:
    responseString = new String(responseBody.getBytes("ISO-8859-1"),"UTF-8")

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥50 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?