Я экспортирую модель в Laravel 5.7, используя пакет League / CSV :
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
нормально, но все умлауты отображаются неправильно (например, как √∂
). Я бы подумал, что установка спецификации решит эту проблему. У кого-нибудь есть решение?
РЕДАКТИРОВАТЬ: проблема была не в экспорте, а в Mac Excel неправильно отображал умлаут. Смотрите мой ответ ниже.