文本文件是有编码的.
header("Content-Type: text/html; charset=utf-8");
//如果text.txt文件保存的格式是utf-8,则以下正确
//如果是gb2312,则需要转码
//echo iconv('gb2312', 'utf-8', file_get_contents('text.txt'));
echo file_get_contents('text.txt');

解决方案 »

  1.   

    http://blog.csdn.net/froole/archive/2008/11/10/3268470.aspx
      

  2.   

    一个是文件的编码
    例如打开记事本编辑,保存的时候有编码的选项,一般在我们这边,常用的是ANSI和UTF-8(可以用记事本打开文件,然后另存的时候看看默认选着哪项来确认编码)另外网页也有自己的编码,就是在<head></head>里的那个。常用GBK、GB2312、UTF-8,其中GBK和GB2312应该基本通用。对应着文件编码的ANSI。如果你的页面编码和文件的编码不一样,就需要像1楼那样转一下。
      

  3.   

    电脑智能识别01这两个数字,
    让电脑显示人可以看懂的文字,需要告诉电脑,什么样的01字符代表什么文字,然后在显示器上打印处理。
    假设,16进位数0x1F0x2F来表示"中"这个字,那么就必须有一个数据来定义这些信息。
    而这种用来定义文字用什么样的2进位数显示的标准,就是所谓的编码。
    当然,这种编码的标准可以是一台电脑上一个样,为了不同电脑、网络间信息的交流,让所有的电脑都能显示人可以看懂的文字,
    就有了UTF-8、GB2312等编码。
    应该有很多人记得,UTF-8在网络上流行的初期,很多人说,UTF-8的性能不如GBK/GB2312等编码。其主要原因就是,GBK/GB2312用2 字节来表示文字,而UTF-8为了兼容世界上所有的文字,以1-3字节来表示文字。当然,这种性能上的差异是微乎其微的。跟兼容世界语言相比,这种性能上微乎其微,就像大多数电脑必须牺牲很多资源去显示人才能看懂的文字一样。不过,知道了用什么2进位数表示什么文字,也就是编码,那么以什么样式显示这个文字呢?
    这也就是经常所说的字体的定义。首先要知道文本文件的中文使用的是什么编码,在没有别制定的情况下,PHP会采用自己默认的编码进行读取。
    PHP下的默认编码的设定在local里面。
    例如,通过命令行的PHP打印文字,这个文字以什么样式输出呢?
    这个时候,就依照系统的设定的。看执行命令的系统设定的是什么字体。
    所以,如果php打印出来的字串如果是当前系统设定所不兼容的字体,那么就会出现乱码。如果是通过http服务器输出HTML,那么就是输出的字串+http头信息中制定的编码,如果,php输出的字串和http头信息定义的编码不符,
    客户端,也就是浏览器,就可能出现乱码。
    至于显示器以什么字体表示html的内容,那就是CSS、html和浏览器的定义了,这些大家都知道。