今天做一个按IP返回所在地的东西,利用pconline提供的一个在线接口。过程中需要用curl抓取网页,代码写好,抓取成功,可是返回的时候却变成了乱码,已知返回的内容里肯定有中文。
之前用curl做热友插件的时候并没有发生中文乱码的问题,所以一直以来也没注意过代码的问题,所幸这次发现了,立马修改代码,将原先的代码尾部加上mb_convert_encoding()来解决:
$url = "http://whois.pconline.com.cn/ip.jsp";
$ch = curl_init(url);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION,true);
$contents = curl_exec($ch);
$response_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($response_code <> '200')
$message = "无法获得".$url."上的数据,错误代码:". $response_code. "<br>" ;
else {
$contents = mb_convert_encoding($contents, 'utf-8', 'GBK,UTF-8,ASCII'); //加上这行
echo "ip来自". $contents;
}
效果OK。
文章评分2次,平均分5.0:★★★★★

这就是编辑转换,在采集的时候很好用。
mark,说不定以后有用
乱码了哈~~