本文共 3343 字,大约阅读时间需要 11 分钟。
最近用Httpclient对网页进行采集,因为采集的网页编码不确定,主要是中文的网址,而httpclient对编码的识别也是靠response的head来识别的,但是有的服务器根本不返回这个头,httpclient默认就采用了ISO-8859-1的编码。上网搜索了下,有人写出了浏览器对页面编码的自动识别原理,还是个北京人呢。我找到了他的java实现算法,为了保证写好的代码不会被重新大修改,我就extends了httpclient中的GetMethod(因为我在用这个类)对里面的编码识别进行了修改,完整的算法如下(使用了chardet.jar这个类库):
这个代码是对chardet.jar的使用,这个算法来自网上:
下面是对GetMethod的扩充
转载地址:http://ivini.baihongyu.com/