function read_file($file)
{
  if(is_readable($file))
  {
    $handle = fopen($file,'r') or die("不能打开文件:$file !");
    $arr=array();
    $i=0;
    while (!feof($handle)) 
    {
      $arr[$i] = fgets($handle);
      echo "<br><a href=music_menu.php?id=".$i.">".basename(trim($arr[$i]))."</a><input type=hidden id='".$i."' value=".$arr[$i].">";
      $i++;
    }
    fclose($handle);
  }
}
 read_file("music_list.txt");文件编码统一是默认的GB2312,其他关于中文输出的都没问题,就这个页面部分乱码,但在本地没有问题,

解决方案 »

  1.   

     不知道啊!怎么才知道服务器是linux的啊?
      

  2.   

    本地windows,txt文件歌曲地址:都是   sound/music1.mp3
                                  sound/music2.mp3
                                  sound/伤心3.mp3
      

  3.   

    windows和linux默认的编码是不同的!你需要在把所有文件的编码都统一!顺便在输出的页面也设置成GB2312.
    并且明确告诉浏览器编码为
    <meta http-equiv="Content-Type" content="text/html; charset="gb2312" />
      

  4.   

    winodws用gb2313,linux用UTF-8,编码不同就会乱码。所以你读取中文文件时应该对文件名和内容进行编码转换。不过在WEB应用上非英文文件名一般是不建议使用,中文名应该入库再关联文件。
      

  5.   

    文件时英文的呀!music_list.txt  换utf-8只要是中文就乱码,奇怪的是,在乱码的中文歌曲名前加个字母前缀就不会乱码。到底是什么原因啊,并且没乱码的含有中文的歌曲名不能播放。
      

  6.   

    和系统有关!你还是都改成utf-8的比较好些!文件名也改成英文的!