httpclient乱码问题浅析2

上次说到了httpclient的编码识别机制是从Http头提取信息。但是它的源码我看的云里雾里,也没有怎么验证过。后来终于发现给出HTTP头的代码。

 

通过这个分析HTTP头,发现确实有不少网站并不返回charset信息的。

先拿百度举例,百度的信息是挺全的:

 

 

Date: Mon, 25 Oct 2010 06:32:11 GMT

Server: BWS/1.0 

Content-Length: 6218

Content-Type: text/html;charset=gb2312

Cache-Control: private

Expires: Mon, 25 Oct 2010 06:32:11 GMT

Set-Cookie: BAIDUID=0BC71212D53FA68D5095FDD0F21B4986:FG=1; expires=Mon, 25-Oct-40 06:32:11 GMT; path=/; domain=.baidu.com

P3P: CP=” OTI DSP COR IVA OUR IND COM “

Connection: Keep-Alive

 

然后拿个另外的大网站www.hudong.com,发现就连这个网站信息也不全:

 

Server: nginx/0.8.50

Date: Mon, 25 Oct 2010 06:33:42 GMT

Content-Type: text/html

Content-Length: 153774

Last-Modified: Mon, 25 Oct 2010 06:31:40 GMT

Connection: close

Accept-Ranges: bytes

看来光是用httpclient自己来识别网站编码是行不通的,只能通过判断 meta 里面的东西来设定了。但问题是这样一来,就要把刚刚摘下来的字符串转码。这对我来说还是比较困难的,得继续研究。

 

 

 

 

No Comments

Post a Comment