之前使用phpQuery采集页面信息,但是取过来后中文总是乱码,上网搜了一下别的同僚的解决方案,其中最有用的一篇是http://blog.ihipop.info/2011/08/2647.html/comment-page-1 作者的解决方案很详细,但是按照方案实行了一遍后,发现还是没解决我的问题,于是又装回了原版的phpquery,然后继续在编码上来回转换解决问题。
我需要完成的任务是从http://v.17173.com/dota2抓到数据来用,我本地是uff-8的,但是目标页面是utf-8编码,抓过来后以utf-8的编码输出会是乱码,很奇怪,原因之一就是上边同僚提到的,phpquery在抓取目标页面代码时,未能获取到meta中的编码信息时一律转换为ISO-8859-1编码,于是我本地先将抓来的中文由utf-8转换为ISO-8859-1 如下mb_convert_encoding($zn_str,'ISO-8859-1','utf-8') ,然后输出中文时就发现他们变成了比较熟悉的gbk乱码形式,然后再从gbk转换成utf-8即可,mb_convert_encoding($zn_str,'utf-8','GBK'),前后转了两次解决了问题