使用PHP读取中文(Unicode字符)文本文件

时间:2010-11-02 11:32:17

标签: php file-io

我正在使用以下代码阅读一个中文文本文件(使用PHP):

    $myFile = "test.txt";
    $fh = fopen($myFile, 'r');
    $theData = fread($fh, filesize($myFile));
    fclose($fh); 
    print $theData;

test.txt文件内容:

PHP是很好的语言。我喜欢这门语言。
我正在开发一个Web应用程序使用PHP。

执行上述代码后,我没有得到上述文件中的确切内容。

是否有其他方法可以读取包含Unicode字符并打印它的文件。

请提供你的建议。

谢谢,

-Pravin

2 个答案:

答案 0 :(得分:1)

您需要指定输出编码以匹配您正在阅读的字符数据的编码。

如果您的文本文件是UTF-8编码,请将以下content-type标题之一添加到PHP文件的顶部:

header("Content-Type: text/plain; charset=UTF-8");  // output as text file
header("Content-Type: text/html; charset=UTF-8");   // output as HTML 

如果是UTF-16编码,我会使用iconv()将其转换为UTF-8,这几乎已成为网络的标准编码:

$theData = iconv("UTF-16", "UTF-8//TRANSLIT", $theData);

答案 1 :(得分:0)

更好的方法是使用它:

readfile('text.txt');

您可以在http://pl2.php.net/manual/en/function.readfile.php

找到此功能的文档