用PHP导出CSV格式的utf-8字符

我需要用php导出一个.csv文件。 我使用下面的代码来做到这一点:

header('Content-Encoding: UTF-8'); header('Content-type: application/csv; charset=UTF-8'); header("Content-Disposition: attachment; filename=$fn"); echo "\xEF\xBB\xBF"; // UTF-8 BOM print($csv); 

$csv包含一些波斯语字符。 当我用MS Excel打开导出的文件,显示错误的字符。 当我打开文件记事本字符显示正确。 我怎么解决这个问题?

这是我做的。

header('Content-Encoding: UTF-8');

header('Content-type: text/csv; charset=UTF-8');

header("Content-Disposition: attachment; filename=file.csv");

header("Pragma: no-cache");

header("Expires: 0");

header('Content-Transfer-Encoding: binary');

echo "\xEF\xBB\xBF";

之前我得到垃圾字符现在正确的数据导出。