1.因为你输出的时候没有指定utf8编码
  
mb_http_output( "UTF-8" );
echo mb_convert_encoding($text, "UTF-8", $encode);
不过转换后的字符存在字节丢失现像.2.
正确设置输出编码
不进行编码转换就能正确显示,不过好像你要求的不应该只是这样。

解决方案 »

  1.   

    TO ice_berg16(寻梦的稻草人) :1、加了mb_http_output("UTF-8"); 一样产生乱码!2、正确设置输出编码?--> 如何设置呢?(原来可能不在这儿吧)
       不进行编码转换就能正确显示 --> 不转换一样产生乱码!希望你测试一下!谢谢!
      

  2.   

    <?php
    $file = $_POST['fname'];
    if(is_file($file)){
    $text .= file_get_contents($file);
    echo $text;
    }
    ?>
    <FORM METHOD=POST ACTION="?">
    <input type="file" name="fname">
    <input type="submit" value="start">
    </FORM>
      

  3.   

    TO gu1dai(异域苍穹......追夢人) : 你把下面的保存为UTF-8编码,然后测试一下试试!  仍然有乱码的!<?php
    $file = $_POST['fname'];
    if(is_file($file)){
    $text .= file_get_contents($file);
    echo $text;
    }
    ?>
    <FORM METHOD=POST ACTION="?">
    <input type="file" name="fname">
    <input type="submit" value="start">
    </FORM>
      

  4.   

    我上面没有乱码
    我用记事本存的utf-8
      

  5.   

    我是测试过的,
    第一个问题的浏览器编码要选择utf8。
    第二个问题的浏览器编码要选择GB2312。
      

  6.   

    TO  上面两位!首先非常感谢你们的回复!
    确实存在我说问题! 可是用你们的方法根本解决不了! 可是是我表述的不清楚吧!我郁闷了一天! 希望你加我QQ聊! 22940943           谢谢!  :-)
      

  7.   

    $encode = mb_detect_encoding($text, "ISO8859-1");
      

  8.   

    ANSI 并不是标准的编码方式,或者说PHP不认这个编码方式.<?php
    $file = "ansi.txt";
    $handle = fopen($file, "rb");$text = '';
    while(!feof($handle))
    {
    $text .= fgets($handle, 1024);
    }
    fclose($handle);//注意编码的排列顺序.如果没有CP936 ,会被认为是BIG-5的.
    $encode = mb_detect_encoding($text, "ASCII,UTF-8,CP936,EUC-CN,BIG-5,EUC-TW");echo mb_convert_encoding($text, "UTF-8", $encode);
    echo $encode;
    ?>
      

  9.   

    netvt(唯她(为了泡老婆,努力学习LISP))  强!!一会给分!最后一问:
     注意编码的排列顺序.如果没有CP936 ,会被认为是BIG-5的--->这是为什么呢?
      

  10.   

    GBK对应的code page就是CP936。
    明白! 结帐!
      

  11.   

    detect_encoding
    ,原来自带了函数,我还傻傻地想有空把那个java版的detect encode类改成php版的。
    看来我要去改我的程序了