使用 CSV
打开文件是正常的,但是使用 Excel
打开文件就出现了中文乱码。导出的 CSV
文件是 UTF-8无BOM编码格式
,而我Excel的UTF-8编码格式
都是有BOM
的,添加 BOM
之后,乱码就可解决。
private function _write_csv($data)
{
file_put_contents($this->_file_dir, '');
$file = fopen($this->_file_dir, 'w');
fwrite($file, chr(0xEF).chr(0xBB).chr(0xBF)); // 添加 BOM
$content = [
'日期',
'品类',
'价格',
'单位',
];
fputcsv($file, $content);
foreach ($data as $item) {
$content = [
$item['product_name'],
date('Y-m-d', $item['day_time']),
$item['price'],
$item['unit_name']
];
fputcsv($file, $content);
}
fclose($file);
}