PHP写入到文本文件乱码

我写了一段小程序,先是读入一个文本文件,经过字符处理后再输出到一个文本文件,但是输出以后成了乱码吗,怎么回事,<?php$arr=file("school.txt");f... 我写了一段小程序,先是读入一个文本文件,经过字符处理后再输出到一个文本文件,但是输出以后成了乱码吗,怎么回事,
<?php
$arr = file("school.txt");

foreach ($arr as $value)
{
$search = array("[","]");
$replace = array("","");

//替换
$string = str_replace($search, $replace, $value);
//附加分号和换行
$string = $string.";"."\r\n";
//写入文件
$fp = fopen("schools.txt", "ab");
if(!$fp)
{
echo "文件打开错误";
exit;
}
fwrite($fp,$string);
fclose($fp);
}

?>
只有汉字是乱码,英文和数字都显示正常
展开
 我来答
匿名用户
推荐于2016-06-17
展开全部

  php处理中文编码老是有问题,这是编码的问题,可以将txt文件另存为UTF-8的编码再处理;

  参考如下:

function file_utf8($filepath){
    $f_contents= file_get_contents($filepath);
    
    $encoding = mb_detect_encoding($f_contents, array('GB2312','GBK','UTF-16','UCS-2','UTF-8','BIG5','ASCII'));

    $content_u="";
    $handle=fopen($filepath,"r");
    if ($handle){
        while (!feof($handle)) {
            $buffer= fgets($handle);
            if ($encoding != false) {
                if (mb_detect_encoding($buffer)!='UTF-8'){
                    $buffer = iconv($encoding, 'UTF-8', $buffer);
                }
            }else{
                    $buffer = mb_convert_encoding ( $buffer, 'UTF-8','Unicode');
            }
            $content_u.=$buffer;
        }
        fclose($handle);
        return $info=array('status'=>1,'message'=>$content_u);
    }else{
        return $info=array('status'=>0,'message'=>'打开文件失败');
    }
}
六原升耗车03
2013-04-29 · 超过28用户采纳过TA的回答
知道答主
回答量:430
采纳率:80%
帮助的人:46.2万
展开全部
首先看你网页编码是什么,一般本地计算机都是GB2312编码 如果你使用其它可能就会产生乱码
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wozuijiangchen
推荐于2017-12-16 · 超过35用户采纳过TA的回答
知道答主
回答量:132
采纳率:0%
帮助的人:81.3万
展开全部
显然你的字符集没有设置好~
<?php
$arr = file("school.txt");

foreach ($arr as $value)
{
$search = array("[","]");
$replace = array("","");

//替换
$string = str_replace($search, $replace, iconv("utf-8","GB2312",$value));
//附加分号和换行
$string = $string.";"."\r\n";
//写入文件
$fp = fopen("schools.txt", "ab");
if(!$fp)
{
echo "文件打开错误";
exit;
}
fwrite($fp,$string);
fclose($fp);
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
springsky2011
2013-04-29 · TA获得超过190个赞
知道小有建树答主
回答量:200
采纳率:0%
帮助的人:151万
展开全部
字符编码不对
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式