Heritrix解決中文亂碼
最近,突發(fā)奇想,想把工作中遇到的問(wèn)題和大家分享出來(lái)。自己沒(méi)有牛到貢獻(xiàn)一個(gè)開(kāi)源項(xiàng)目,但是,有多少就貢獻(xiàn)多少吧。
廢話不多說(shuō)。第一次分享的是Heritrix的亂碼解決。
根據(jù)官方文檔或者是一些blog,可以很輕松的配出一個(gè)可以運(yùn)行的heritrix,基于web的管理頁(yè)面也十分簡(jiǎn)單。但是中文亂碼問(wèn)題卻很少有提及,就算提及,也是一句話,和沒(méi)說(shuō)一樣。
目前Google、Baidu上能搜到的,大多是Heritrix 1.X的內(nèi)容,heritrix 3.x的比較少,而這兩個(gè)版本的結(jié)構(gòu)貌似差的挺大,所以在Heritrix3上遇到的很多問(wèn)題就得靠自己了。
heritrx 3 首先會(huì)去根據(jù)服務(wù)器返回的Content-type去獲得編碼。
例如上圖的光環(huán)中的內(nèi)容。這個(gè)時(shí)候往往是沒(méi)有亂碼的,挺和諧。
但是,如果獲得不到就認(rèn)為是ISO-8859-1(這個(gè)值是可配的)。例如下圖。可實(shí)際上它是gb2312的。
在此我真的想感嘆,老外的世界里只有ISO-8859-1嗎!
這個(gè)時(shí)候我們可以根據(jù)HTML的meta信息來(lái)判斷,例如
<metahttp-equiv="content-type"content="text/html;charset=utf-8">
我目前還沒(méi)見(jiàn)過(guò)從這個(gè)地方獲得不到編碼的(也有可能是我閱歷淺),所以從這個(gè)地方拿編碼還是比較靠譜的,拿的方法有很多種,我當(dāng)時(shí)借鑒了Jsoup用了正則來(lái)獲得。至于這段代碼,也不在手邊,有機(jī)會(huì)再貼吧,目前僅提供一個(gè)思路吧。
也許解決亂碼問(wèn)題還有更好的辦法,歡迎留言。
原文參考自web開(kāi)發(fā)網(wǎng):http://www.software8.co/wzjs/qtyy/3676.html
posted on 2013-04-03 10:23 你爸是李剛 閱讀(176) 評(píng)論(0) 編輯 收藏