今天做一个按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,说不定以后有用
乱码了哈~~