Saya mengekspor model di Laravel 5.7, menggunakan paket 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,
    ];
}

Ini membuat file export.csv ok, tetapi semua umlaut tidak ditampilkan dengan benar (mis. sebagai ö). Saya akan berpikir pengaturan BOM akan menyelesaikan ini. Apakah ada yang punya solusi?

EDIT: Masalahnya bukan ekspor, itu adalah Mac Excel yang menampilkan umlaut secara tidak benar. Lihat jawaban saya di bawah ini.

5
GluePear 12 Maret 2019, 16:46

1 menjawab

Jawaban Terbaik

Pertanyaan saya dirumuskan dengan buruk, tetapi saya akan meninggalkan jawabannya di sini kalau-kalau ada orang lain yang memiliki masalah yang sama. File itu sebenarnya diekspor dengan benar: jika saya membukanya di editor teks, umlaut terbentuk dengan benar.

Agar berfungsi dengan baik di Excel (di Mac), saya harus:

  1. Buka lembar kerja kosong
  2. Data > Dapatkan Data Eksternal > Impor File Teks...
  3. Dari dropdown asal File, pilih "Unicode (UTF-8)"
1
GluePear 2 April 2019, 14:03