一会乱码一会不是乱码

ad2008 2009-03-28 02:53:54
我的文件编码是gbk的,我用file_get_contents获取页面的时候,有时候是乱码,有时候又不是


$content=file_get_contents('http://bj.ganji.com/jiaoyou5/09032721_424301.htm');
$content=mb_convert_encoding($content,'gbk','utf-8');
echo $content;
...全文
147 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
ad2008 2009-03-28
  • 打赏
  • 举报
回复
还是一会乱码一会不是,然后我把页面编码和文件编码改成utf-8的,也是这样


header('Content-Type: text/html;charset=utf8');
date_default_timezone_set('Asia/Chongqing');

//中文
$content=file_get_contents('http://bj.ganji.com/jiaoyou5/09032721_424301.htm');
echo $content;exit;
phpboy 2009-03-28
  • 打赏
  • 举报
回复
up
楼上多考虑了一次页面的编码,貌似有点道理!
mengshan1986 2009-03-28
  • 打赏
  • 举报
回复

<?
$content=file_get_contents('http://bj.ganji.com/jiaoyou5/09032721_424301.htm');
$content=mb_convert_encoding($content,'gbk','utf-8');
$content=str_replace('utf-8','gbk',$content);
echo $content;
?>

mengshan1986 2009-03-28
  • 打赏
  • 举报
回复
你采集的页面虽经过转码但是<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
这句是不会变的,浏览器是认为是utf-8的,而内容被你转为了gbk当然乱码了,你把apache的默认编码改为gbk试试
可以用php的搜索替换功能查找utf-8然后替换为gbk
  • 打赏
  • 举报
回复
由于你采集的页面编码不一致
和你设定一致的,那么就不会乱码,不一致的就自然乱码了
tottyandbaty 2009-03-28
  • 打赏
  • 举报
回复
你的页面编码得跟你采集的页面编码一样
surge0321 2009-03-28
  • 打赏
  • 举报
回复
和汉字有关吧,英文就没问题了
十三月二十一 2009-03-28
  • 打赏
  • 举报
回复
汉字两个字节,有时用了一个字节的标点,读取时也当两个字节来读,后面的就是乱码了,
ad2008 2009-03-28
  • 打赏
  • 举报
回复
return 不出内容,很是奇怪

function getcontent($url)
{
$content=file_get_contents($url);
var_dump(strpos($content,'<html'));
if(!strpos($content,'<html')) getcontent($url);
else
{
//echo $content;
return $content;
}
}
$content=getcontent('http://bj.ganji.com/jiaoyou5/09032721_424301.htm');
echo $content;
mengshan1986 2009-03-28
  • 打赏
  • 举报
回复
还不如这样了

$content=file_get_contents('http://bj.ganji.com/jiaoyou5/09032721_424301.htm');
echo $content;exit;

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧