语言是Php,利用header实现文件下载功能。
程序编码是UTF-8,下载的文件用记事本打开没问题
但是用excel2000打开则乱码,手动改称ANSI则正常显示
excel2003打开也没问题
刚接触,很多都不懂,请各位高手指点。
(我现在的想法是将下载的文件的编码格式设置为ANSI,
可是没找到正确的方法)

解决方案 »

  1.   

    windows下的文件编码如果是utf-8的话,需要有BOM头系统才能正常识别。    function writeUTF8File($filename,$content)
        {
             $f = fopen($filename, 'w');
             fwrite($f, pack("CCC", 0xef,0xbb,0xbf));
             fwrite($f, $content);
             fclose($f);
             chmod($filename,0777);
        }
    上面是一个写入文件BOM头的函数,你可以参考下。
    可以在你的文件输出的最开头输出这句的结果pack("CCC", 0xef,0xbb,0xbf);
      

  2.   

    iconv好像转换不了阿fenyao你好,BOM我是第一次听说,
    刚才查了一下,大概知道是什么了
    可是为什么下载的文件用记事本和excel2003可以显示呢
    难道他们不用BOM来识别编码?