jae-jae / QueryList

:spider: The progressive PHP crawler framework! 优雅的渐进式PHP采集框架。
https://querylist.cc
2.67k stars 443 forks source link

转换编码格式报错 #5

Closed storyflow closed 7 years ago

storyflow commented 7 years ago

版本:3.1.2
php版本:5.3.27 处理:GB2312 转 UTF-8

报错截图: qq 20170906123551

不影响正常执行

相关代码:

private function _arrayConvertEncoding($arr, $toEncoding, $fromEncoding)
{
    eval('$arr = '.iconv($fromEncoding, $toEncoding.'//IGNORE', var_export($arr,TRUE)).';');
    return $arr;
}
storyflow commented 7 years ago

后续:应该编码就是UTF-8,导致报错。 但是仍然没解决乱码问题。

jae-jae commented 7 years ago

QueryList内置的转码比较简单,并不能适用于复杂情况,请手动转码HTML然后再把HTML传给Query方法

storyflow commented 7 years ago

@jae-jae 和内置的转码方法是一样的,使用的是iconv。 我解析的是taobao的dom,先转码,再把HTML传给Query方法,会解析不了。 我自己再尝试下吧。谢谢

storyflow commented 7 years ago

@jae-jae 问题已经解决了,可以关闭了。

问题:抓取页面乱码问题 源网站编码:GBK 想要的编码:UTF-8

方案一:内置的转码方法 GBK => UTF-8 无效,仍然会出现乱码的情况

方案二:手动转码HTML,然后再把HTML传给Query方法。 解决方法:需要移除头部。