如何在php中导出csv文件、字符集utf-8而不是没有BOM的utf-8?

如何在php中导出csv文件、字符集utf-8而不是没有BOM的utf-8?,php,csv,utf-8,character-encoding,Php,Csv,Utf 8,Character Encoding,可能重复: 我可以用这段代码从php导出csv文件 header('Content-Type: text/csv; charset=utf-8'); header('Content-Disposition: attachment; filename=data.csv'); $output = fopen('php://output', 'w'); 但是这段代码使用charsetutf-8创建文件,而不使用BOM,但是我需要charsetutf-8 这是解决这个问题的方法吗?我是这样做的 h

可能重复:

我可以用这段代码从php导出csv文件

header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename=data.csv');

$output = fopen('php://output', 'w');
但是这段代码使用charset
utf-8创建文件,而不使用BOM
,但是我需要charset
utf-8

这是解决这个问题的方法吗?

我是这样做的

header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream'); 
header('Content-Disposition: attachment; filename=file.csv'));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
echo "\xEF\xBB\xBF"; // UTF-8 BOM
echo $csv_file_content;
exit();

当然,您可以用所需内容替换
echo$csv\u文件内容

你是说cvs还是csv,或者两者都是?对不起,文件类型是csv。你为什么需要BOM表?据我所知,标准不建议在Unicode中包含字节顺序标记。@Daniel我对Unicode CSV文件也有同样的问题-它在任何文本编辑器中都可以正常打开,但可靠的旧Excel在BOM不存在时出错(至少在我的机器上)。也许我做错了什么@丹尼尔谢谢你的解释。我需要支持这些疯狂的应用程序,所以我会继续使用BOM表,希望它不会在其他应用程序中引起不期望的问题!谢谢你,伙计。它帮助了我。我知道,通过使用那些\xEF\xBB\xBF将起作用。但我不知道如何实施它。为了防止其他人使用此解决方案,您将my Day设置为行
标题('Content-Disposition:attachment;filename=file.csv')在此代码中有一个额外的
,它应该是:
标题('Content-Disposition:attachment;filename=file.csv')