<?php
$DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
$fil = file("$DOCUMENT_ROOT\explode.txt");
print_r($fil);
?>

解决方案 »

  1.   

    <?php
    header("Content-type: text/html; charset=utf-8");
    function convertToUTF8($str) {
      $charset = mb_detect_encoding($str, "auto");
        if (strcasecmp($charset,'UTF-8') != 0) {
          $str = mb_convert_encoding($str,'UTF-8',$charset);
        }
      return $str;
    }
    $DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
    $fil = file("$DOCUMENT_ROOT\explode.txt");
    print_r(convertToUTF8($fil));
    ?>
      

  2.   


    就是本机运行的。用file()函数砸入了一个txt的内容放入数字中 用print_r()函数打印了就出现乱码了。不知道怎么解决。
      

  3.   


    我直接复制你的代码在本机上都无法运行。
    Warning:  mb_detect_encoding() expects parameter 1 to be string, array given in D:\wamp\www\php_explode.php on line 25Warning:  mb_convert_encoding() expects parameter 1 to be string, array given in D:\wamp\www\php_explode.php on line 27
    这个错误。
      

  4.   

    天,看错了,你用的是file,不是file_get_contents()。尝试用file_get_contents(),或者foreach出代码后再用  mb_detect_encoding()
    foreach($fil as $line){
       print_r(convertToUTF8($line));
    }
      

  5.   


    如果是编码问题用iconv('gb2312', "UTF-8", $text); 
    或iconv("UTF-8", 'gb2312', $text) 转换看看。。
      

  6.   

    问题是源文件是txt文件,还有可能是ascii编码, iconv('UTF-8', 'ASCII//TRANSLIT',$text); 
    总不见得一个一个编码去猜吧?所以还是先mb_detect_encoding再mb_convert_encoding的好
      

  7.   

    试过了 都还是不行。file出来的都还是乱码。会不会和64位的系统有关系呢?
      

  8.   

    程序是什么编码? 用header 指定下字符集下试试。
      

  9.   

    你看看你的运行的php文件编码是不是utf-8~~
      

  10.   

    不知道txt的编码乱猜有什么用?程序是utf-8,那txt除了utf-8和纯ascii都可能乱码
    就算txt也是utf-8,没有header指定,如果浏览器默认显示不是utf-8,也可能乱码浏览器用右键逐个字符集试一下吧
      

  11.   

    用fopen,用二进制的方式读取头部三个字节,这是判断文件是不是UTF8格式的方法,UTF8格式的文件,头三个字节是:EF、BB、BF。然后。然后。。其实我也没实验过,现在去试试看。
      

  12.   

    什么TXT,有木有115,百度云之类的?把那个txt给上传了,大家给你测试一下吧。