我们来简单看下PHP创建文件的代码:
$handle = @fopen($local_file_txt,"w+"); if(fwrite($handle,$local_file_content) === false){ ?? ?die("写入文件 local_file.txt 失败"); ?? ?exit(); } fclose($handle);
一般而言,这种方法没有问题,然而当我们用到中文的时候就出现问题了,首先是中文名的文件,这个问题不是本文探讨的范围,另一个问题是文件的内容中包含中文。 经过观察,这样创建的txt文件(包括其他扩展名的文本文件)都是ANSI编码的,(ANSI是文件编码)里面的中文常常是乱码。为了解决这个问题,我们用一个简单的代码串来解决:
fwrite($handle,"\xEF\xBB\xBF".$loacl_file_content)
在写入的文件内容之前加上上面的红色字体部分,即可让产生的文本文件是UTF8编码的,其中的中文内容就不再是乱码了。