PHP 导出 CSV 文件用 Excel 打开出现中文乱码
本篇文章由:http://xinpure.com/php-export-csv-file-opened-by-excel-appear-garbled/
乱码情况
写了一段导出 CSV
文件的代码,可以正常输出
使用 CSV
和 TXT
程序打开文件是正常的,但是使用 Excel
打开文件就出现了中文乱码的问题(这就奇怪了, 为什么在 Excel
中会乱码呢?)
通过查看编码发现,导出的 CSV
文件是 UTF-8 无BOM编码格式
,而我们通常使用 UTF-8 编码格式
都是有 BOM
的。
尝试着添加了 BOM
之后,中文乱码的问题有解决了。
添加 BOM 到 CSV 文件中
示例代码:
$file = fopen($export_file_path, 'w');
fwrite($file, chr(0xEF).chr(0xBB).chr(0xBF)); // 添加 BOM
foreach ($contens as $content) {
fputcsv($file, $content);
}
fclose($file);