我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

在抓取这个圈里面来说吧,拿到的html代码是乱码的概率,还是有的。对于querylist来说,在最开始的时候,推出了函数叫做removeHead(),用来解决乱码问题。但在本文中,苏南大叔说的是另外一个querylist函数叫做encoding()。同时,大家请不要忘记:php原生的iconv也是用来解决乱码问题的。

苏南大叔:QueryList 使用 encoding() 进行编码转换,解决乱码问题 - querylist-encoding
QueryList 使用 encoding() 进行编码转换,解决乱码问题(图1-1)

encoding函数原型

QueryList encoding(string $outputEncoding,string $inputEncoding = null)

对html进行编码转换,解决乱码问题。

  • 第一个参数$outputEncoding是输出字符集编码,一般来说就是个固定模式的UTF-8了。
  • 第二个参数$inputEncoding指的是输入字符集编码,这个就是大家凭借经验,自己设置的了。也许GB2312是你的选择,不过,具体问题请具体分析。如果不确定,第二个参数也可以不设置。

使用范例

范例一:

$data = QueryList::get('https://top.etao.com')->encoding('UTF-8')->find('a')->texts();
print_r($data);

范例二:

$data = QueryList::rules([
    'txt' => ['a','text']
])->get('https://top.etao.com')->encoding('UTF-8','GB2312')->query()->getData();
print_r($data);

总结

解决乱码的方式很多,本文中的encoding()方法,也只是针对querylist所特有的一个方法。更多querylist的编程经验,请支持苏南大叔的querylist系列文章,点击下面的链接即可。

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   querylist