4

可能重复:
在 PHP 中使用 BOM 将字符串编码为 UTF-8

我可以使用此代码从 php 导出 csv 文件

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

$output = fopen('php://output', 'w');

但是这段代码使用字符集创建文件,utf-8 without BOM但我需要字符集utf-8
是解决这个问题的方法吗?

4

1 回答 1

14

这就是我的做法。

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_file_content用你需要的东西代替。

于 2012-12-08T14:23:19.620 回答