我正在使用League/CSV包在Laravel 5.7中导出模型:
public function export(Request $request)
{
$people = Person::all();
$location = 'export.csv';
$csv = Writer::createFromPath($location, 'w');
$csv->setOutputBOM(Writer::BOM_UTF8);
$csv->setDelimiter(';');
foreach ($people as $person) {
$csv->insertOne($this->serializePerson($person));
}
return response($location);
}
protected function serializePerson($person)
{
return [
$person->name,
$person->age,
];
}
这将创建
export.csv
文件,但任何umlauts都会呈现不正确(例如作为√∂
)。我原以为设置BOM会解决这个问题。有人有解决办法吗?编辑:问题不是导出,而是Mac Excel错误显示umlaut。请参见下面的答案。
$reader->addStreamFilter('convert.iconv.ISO-8859-15/UTF-8');
? - MoxGeekö
,而是现在是√ɬ∂
。 - GluePear