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

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
    enet_java 2010-10-25 14:23
    已采纳

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

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

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

    点赞 评论
  • enet_java
    enet_java 2010-10-25 14:22

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

    最好这个地方设置一个默认的编码。

    点赞 评论

相关推荐