求助,刚学php,写着玩。通过1表单提交订单,通过2处理程序,按一定的格式写到txt文档中,但是打开txt文件后,发现汉字是乱码。英文和数字都正常,难道写入txt的时候还要设置编码吗?如何设置?1 提交(tijiao.html)<html>
  <head>
    <title>一淘订餐</title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
  </head>
  <body>
      <div align="left">
          <p>&nbsp;</p>
          <p>
              <font size="5">我要订餐</font>
          </p>
          <!--表单-->
          <form method="post" action="chuli.php">
              <p align="left">花名:
                  <input type="text" name="huaming">
              </p>
              <p align="left">店名:
                  <input type="text" name="dianming">
              </p>
              <p align="left">订什么餐?
              </p>
              <p align="left">
                  <textarea cols="30" name="canming" rows="3"></textarea>
              </p>
              <p align="left">
                  <input type="submit" name="submit" value="确定">
              </p>
          </form>
          <p>&nbsp;</p>
      </div>
  </body>
</html>
2 处理(chuli.php)<html>
  <head>
    <title>提交订单</title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
  </head>
  <body>
<?php
$huaming= $_POST['huaming'];
$dianming= $_POST['dianming'];
$canming= $_POST['canming'];
if($huaming=="")
    {
    echo"亲,花名不能为空喔!";
    }
    elseif($dianming=="")
        {
    echo"亲,店名不能为空喔!";
    }
    elseif($canming=="")
        {
    echo"亲,订餐内容不能为空喔!";
    }
    else
        {
        $fp=fopen("F:\Program Files\wamp\www\etao\list.txt","a+");
        $t=date('Y年m月d日 H:i:s');
        $main='花名:'."$huaming"."\t".'店名:'."$dianming"."\t"."$t".'餐名:'."$canming"."\r\n";
        $write=fwrite($fp, $main);
        fclose($fp);
        echo"亲,订餐成功喽!";        }
?>
</body>
</html>

解决方案 »

  1.   

    用记事本打开 开始的地方 插入条<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 保存 再打开试试吧
      

  2.   

    字符编码的问题,我建议你把html和php文件用记事本打开,选另存为看一下,是不是同样的编码。
      

  3.   

    在php代码首行加上header("Content-Type:text/html;charset=gb2312");  如果还乱码把你的txt文件另存为ANSI编码。
      

  4.   

    应该是文件编码的问题 如乔丹所言 保存为ANSI编码格式
      

  5.   

    直接更改了txt的编码方式,问题解决了,就是不大明白。我如果在php声明用gb2312,所以写入记事本里面的就是gb2313,而保存成ANSI,支持gb2312,所以可以正确显示,是这样吗?