怎么判定抓取页面的数据编码 utf8 gbk
发布于 12 年前 作者 im007boy 9309 次浏览 最后一次编辑是 8 年前

除了response.headers[‘content-type’]里 和正则匹配meta还有没有更直接的办法?meta还有<!---->啥的变态。。。

7 回复

用python的chardet模块,自动检测编码,不用管网站头中是否有定义编码,我之前自己写了一个自动检测网页编码和文件编码的程序,在这里,安装python的chardet模块,直接运行就可以了。

用 Mozilla 提供的 UniversalChardet

UniversalChardet 和 Chardet 都是Mozilla提供的編碼自動猜測工具,Chardet 已經被 UniversalChardet 淘汰。python的chardet是基於Chardet的,推薦使用 libuchardet

http://code.google.com/p/uchardet/

就是页面给出charset,也不一定是真正的charset,例如百度的搜索结果页面。之前演示爬取百度搜索结果页,还出现过根据给出的charset无法转换编码的丑事。。。 Nodejs抓取非utf8字符编码的页面

@byvoid 看起来很强大,谁给编译成node模块把,哈哈哈。

php的mbstring也有类似的功能,可以探测编码。

node里估计根据 utf8 , gbk的特征,检查buffer估计也是可以的,以前php里这么干过

感觉这样会慢的。

现在用的是 iconv-lite 可以,但需要自己探测编码然后再转换

needle集成了iconv-lite,自动帮你完成转码工作,非常棒:https://github.com/tomas/needle

回到顶部