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条)

报告相同问题?

悬赏问题

  • ¥15 如何解决y_true和y_predict数据类型不匹配的问题(相关搜索:机器学习)
  • ¥15 PB中矩阵文本型数据的总计问题。
  • ¥40 宿舍管理系统设计(c#)
  • ¥15 MATLAB卫星二体模型仿真
  • ¥15 怎么让数码管亮的同时让led执行流水灯代码
  • ¥20 SAP HANA SQL Script 。如何判断字段值包含某个字符串
  • ¥85 cmd批处理参数如果含有双引号,该如何传入?
  • ¥15 fx2n系列plc的自控成型机模拟
  • ¥15 时间序列LSTM模型归回预测代码问题
  • ¥50 使用CUDA如何高效的做并行化处理,是否可以多个分段同时进行匹配计算处理?目前数据传输速度有些慢,如何提高速度,使用gdrcopy是否可行?请给出具体意见。