各位大大,这个问题折腾我一下午了。抓取gb2312格式的网页时显示内容乱码,如果我直接把这个页面的uft-8修改成gb2312再抓取就显示正常,
求:在不修改本页面utf-8编码的情况下如何让抓取的gb2312页面不乱码。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php之curl抓取gb2312网页显示乱码</title>
</head>
<body><?php
$url="http://www.jb51.net/article/27448.htm";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
//curl_setopt($curl, CURLOPT_HTTPHEADER,array('Accept-Encoding: gzip, deflate'));
//curl_setopt($curl, CURLOPT_ENCODING,'gzip,deflate'); //这个是解释gzip内
//curl_setopt($ch, CURLOPT_ENCODING,'gzip'); //加入gzip解析
//curl_setopt($ch, CURLOPT_ENCODING, ""); //
$resu = curl_exec($ch);
//释放curl句柄
curl_close($ch);//关闭curl会话
echo $stu;
?> </body>
</html>
你把uft-8格式的编码,用gb2312格式抓取,不乱码才怪,不如。。。。保存一个字符,你抓去的时候是。。。还是一个字符吗?
先弄明白为什么会乱码,
乱码是因为你在 UTF-8的界面上输出你取过的的 GB2313 字符串,
那么在输出前把取到的 GK2312 字符转换成UTF-8,就OK了