我的应用程序是在使用PHP 5.4的WAMP安装上开发的,完全配置了UTF-8。
现在我需要生成一个.csv文件。对于我无法控制的要求,编码必须是ISO-8859-1。
它们是非常小的表格,我使用
编辑一个字符串iconv(“UTF-8”,“ISO-8859-1 // TRANSLIT”,$ each_data);
然后我用这个下载文件:
header('Content-Type: text/csv; charset=ISO-8859-1');
header('Content-Disposition: attachement; filename="'.$filename.'";');
echo $string_with_all_data;
exit(0);
好吧,在我的开发服务器中没有问题,文件是根据需要生成的。但在生产服务器中,生成的.csv在开头包含UTF-8 BOM。
理论上两台服务器都是相同的。但是,一个人在开头生成一个臭名昭着的3个字符的csv()而另一个不生成。两个csv都在ISO-8859-1中正确编码。
我已尝试了一千种方法,但在生成的两个文件中结果总是不同的。 (fputcsv,ob_start(),Content-Type:bla-bla等等......)
我认为在改变输出的php或apache配置中必定存在一些差异,但我找不到它。