很多时候生成csv文件会出现乱码的情况,这是因为平常用于传输的都是utf-8编码,excel打开不识别。 所以我们需要将utf-8编码转为GB2312格式,再写入文件。
<?php
function writeCsvToFile($file, $arr_csv){
$fp = fopen($file, 'w');
fputcsv($fp, $arr_csv);
fclose($fp);
}
$file = "./test.csv";
$data = array('abcd',123456789,'efg'); //多行csv可以采用多维数组解决
foreach ($data as $value)
{
$arr_csv[] = iconv("UTF-8", "GB2312//IGNORE", $value); //这里将utf-8转为GB2312编码进行保存
}
writeCsvToFile($file, $arr_csv);