laracsv 导出中文乱码

laracsv 导出中文乱码

GitHub: https://github.com/usmanhalalit/laracsv

按照说明文档进行使用后,发现下载后的文件在 Excel 打开后是乱码的。排查后是因为输出问题导致的。

1
2
3
$users = User::get(); // All users
$csvExporter = new \Laracsv\Export();
$csvExporter->build($users, ['email', 'name'])->download();

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
use Laracsv\Export;
use League\Csv\Reader;
use App\Models\Test;

public function index()
{
$data = Test::get();

(new Export())->build($data, [
'id' => 'ID',
'name' => '名称',
])
// 获取 \League\Csv\Writer 实例
->getWriter()
// 设置输出 BOM
->setOutputBOM(Reader::BOM_UTF8)
// 设置文件名
->output(date('Y-m-d_His') . '.csv');
}

注意:最后面的 output 就会去进行下载了,不需要 return 或者再加内容,不然会被追加到文件里面。

参考

League\Csv 文档

往上