QueryList 使用 encoding() 进行编码转换,解决乱码问题
发布于 作者:苏南大叔 来源:程序如此灵动~
在抓取这个圈里面来说吧,拿到的html代码是乱码的概率,还是有的。对于querylist来说,在最开始的时候,推出了函数叫做removeHead(),用来解决乱码问题。但在本文中,苏南大叔说的是另外一个querylist函数叫做encoding()。同时,大家请不要忘记:php原生的iconv也是用来解决乱码问题的。

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系列文章,点击下面的链接即可。