首页 » PHP » PHP利用curl获得的数据中文乱码问题

PHP利用curl获得的数据中文乱码问题

19071 3

今天做一个按IP返回所在地的东西,利用pconline提供的一个在线接口。过程中需要用curl抓取网页,代码写好,抓取成功,可是返回的时候却变成了乱码,已知返回的内容里肯定有中文。

ipluanma

之前用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。

ipluanma2

文章评分2次,平均分5.0

本文原始地址:https://www.tiandiyoyo.com/2014/03/php_curl_mb_convert_encoding/
本站所有文章,除了特别注明外,均为本站原创,转载请注明出处来自www.tiandiyoyo.com

您可能还会对以下文章感兴趣:

评论前先开启评论开关:


3 Comments

  1. Era :

    这就是编辑转换,在采集的时候很好用。

  2. aunsen :

    mark,说不定以后有用

载入分页评论...