php抓取gbk编码 中文乱码 多种解决方法
今天做项目,抓取了一个gbk编码的页面后发生中文乱码,最后找到解决方案是:
使用:$content = mb_convert_encoding($content ,'HTML-ENTITIES',"GBK");转码后就好了。$url = 'http://www.juming.com/ykj?api_sou=1&tao='.$id.'&ymlx=0&jgpx=0&1=1&meiye='.$pageSize.'&page='.$page;
$content = httpRequest($url);
//$content = mb_convert_encoding($content,'utf-8'); //此方方法 打印后还是乱码
//$content = mb_convert_encoding($content,"utf-8", "GBK"); //此方方法 打印后还是乱码
//$content = mb_convert_encoding($content,'UTF-8','UTF-8,GBK,GB2312,BIG5'); // 此方方法 打印后还是乱码
// 最后用此方法,解决了
$content = mb_convert_encoding($content ,'HTML-ENTITIES',"GBK");
$dom = new \DOMDocument();
$BDomain = new BDomain();
//从一个字符串加载HTML
@$dom->loadHTML($content);
$xpath = new \DOMXPath($dom);
php使用curl获取文本出现中文乱码的解决办法
在使用php的curl获取远程html文本时出现了中文乱码。
解决办法的代码如下:$url = "gongfuma.com";
//获取页面内容
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT,20);
$res = curl_exec($ch);
curl_close($ch);
$res=mb_convert_encoding($res, 'UTF-8', 'UTF-8,GBK,GB2312,BIG5');
//使用该函数对结果进行转码