0
爲了得到excel正確讀取csv文檔而不將其轉換爲ASCII字符,您需要有一個UTF-8 BOM(3字節,十六進制EF BB BF )在文件的開始。導出到csv與BOM,奇怪的空間開始造成問題的文件
這是我使用導出功能到csv
function download_csv_results($results, $name)
{
header('Content-Type: text/csv; charset=utf-8');
header("Content-Transfer-Encoding: UTF-8");
header('Content-Disposition: attachment; filename='. $name);
header('Pragma: no-cache');
header("Expires: 0");
$outstream = fopen("php://output", "w");
fwrite($outstream, "\xEF\xBB\xBF");
fputcsv($outstream, array_keys($results[0]));
foreach($results as $result)
{
fputcsv($outstream, $result);
}
fclose($outstream);
}
的問題是,當我在十六進制查看我看到
20 ef bb bf
,而不是
ef bb bf 20
我認爲20是一個空間,但是導致這個空間的原因是什麼,爲什麼它在文檔的開頭是我無法弄清楚的。
嘗試添加第四個字節。 – HaLeiVi