hikui 2010-10-25 14:12
浏览 259
已采纳

httpclient4.x编码问题

我在使用httpclient4.x的时候发现如下代码能够有一定几率识别网页的编码。
[code="java"]DefaultHttpClient hc = new DefaultHttpClient();
HttpGet httpget = new HttpGet("http://www.baidu.com/");
HttpResponse response = hc.execute(httpget);
HttpEntity entity = response.getEntity();
entity = new BufferedHttpEntity(entity);
String htmltext = EntityUtils.toString(entity);[/code]

只要用[code="java"]String encode = EntityUtils.getContentCharSet(entity);[/code]
就能验证网站编码有没有被识别。
但是有一些网站却无法自动识别编码,比如www.hudong.com,它的getContentCharSet(entity)返回值是null。这是为什么呢?
httpclient本身的识别编码是采用了怎么样的机制呢?

  • 写回答

2条回答 默认 最新

  • enet_java 2010-10-25 14:23
    关注

    [quote]原理是这样的,在请求的返回header中获取编码,
    如果没有找到返回的编码,而程序也没有指定默认的编码,自然就得到null了。

    最好这个地方设置一个默认的编码。[/quote]

    可以参考文章:http://dh189.iteye.com/blog/732111

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

报告相同问题?

悬赏问题

  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作