查AI 只会告诉你, 要转编码为utf-8
但是不管你怎么转, 都是徒劳的, 比如人民币符号就是显示异常.
解决办法: 在文件内容头部添加 EF BB BF
, 表名文件是utf8编码
具体方法如下
在laravel中
$managementsExport = new ManagementsExport($managements, Auth::id());
$raw = $managementsExport->raw(Excel::CSV);
// 这三个字符对应的十六进制值是 EF BB BF,这是 UTF-8 编码文件的 BOM, 打印效果\u
$raw = chr(239).chr(187).chr(191) . $raw;
return \Illuminate\Support\Facades\Response::make($raw, headers: [
'Content-Type' => 'text/csv',
'Content-Disposition' => 'attachment; filename="managements.csv"'
]);