我有一段Php代码是读取txt文件的 如下:<?php  
  $file = fopen("test.txt","r");
  $s1 = "";
  while(! feof($file))//当文件不结束
  {
      $line=fgets($file);
      echo $line;
  }
  fclose($file);
?>
这样txt可以完整的显示,可是如果我在前面和后面加入html标签后输出的内容就成了乱码了 在php中输出html显示的html也是乱码 这是怎么回事

解决方案 »

  1.   

    编码问题,不知你使用UTF8还是GB2312的编辑器?
    你可以在<?php
    下加入:
    header("Content-Type: text/html; charset=utf-8");
    如果你使用的是GB2312,就用
    header("Content-Type: text/html; charset=GB2312");
    一般我不会这样用
    我一般是这样:
    <!DOCTYPE html>
    <html>
    <meta charset="utf8">
    ...
    <?php
        //php code
    ?>
    </html>
      

  2.   

    肯定是编码问题,以前我调用数据库中文数据时也出现过这种错误。
    首先应该学会分析问题,能输出肯定不是code的问题,那就要想想编码了。
    忽然想起来以前做加密软件的一个现实乱码问题,当然你txt文件是在window系统下生成的,至于php调用你的txt文件,都是从二进制开始的,如果出现乱码,肯定是二进制数据转码是出现了问题。
    这个问题不存在你用php输出还是html输出,关键是要设置号代码转换,先不管他二进制文件,你现实的时候一定要用中文编码来进行转换。utf-8是统一编码,但是中文编码是国标gb2312,php里也可以用gbk编码,是gb2312的一个版本还是什么来着,忘了,反正都可以,在head标签里写入就可以了,同一楼相同。
    <head>
    <meat http-equiv="Content" content="text/html; charset=gb2312">
    </head>
    或者是charset=gbk;都可以了。
      

  3.   


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>无标题文档</title>
    </head>
    <?php  
    header("Content-Type: text/html; charset=utf-8");
      $file = fopen("test.txt","r");
      $s1 = "";
      while(! feof($file))//当文件不结束
      {
          $line=fgets($file)."<br />";
          echo $line;
      }
      fclose($file);
    ?>
    <body>
    </body>
    </html>
    我改成了这样  但是还是不行啊
      

  4.   


    文件的编码格式也请改为utf-8.
      

  5.   


    先用UE一类的编辑器看一下你的这个test.txt是什么编码的。然后根据你这个文本文件的编码格式再转
      

  6.   

    也许这个对你更有用一些?
    http://zhidao.baidu.com/question/76923663.html:测试:将 text1.txt 保存成 ASCII编码, text2.txt 保存成 UTF-8 编码  <?php
    function chkCode($string){
     $code = array('ASCII', 'GBK', 'UTF-8');
     foreach($code as $c){
      if( $string === iconv('UTF-8', $c, iconv($c, 'UTF-8', $string))){
       return $c;
      }
     }
     return null;
    }$file = 'text1.txt';
    echo chkCode(file_get_contents($file));  // 输出ASCII
    echo '<br />';$file = 'text2.txt';
    echo chkCode(file_get_contents($file));  // 输出UTF-8
    echo '<br />';
    ?>
      

  7.   

    这个要根据你的txt文件是什么编码类型的来设置的