3
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Laravel-ExcelでCSV出力したら文字化けしたのでUTF-8(BOM有り)で対応した

Posted at

失敗例

src/config/excel.php


'use_bom' => true

BOM有りの設定に変更してみたが文字化けしたまま。

どうやら、このファイルではデフォルトを使用するらしいので変更しても駄目だった。

解決

エクスポートクラスにgetCsvSettingsメソッドを追加する。

src/app/Exports/HogeExport.php


use Maatwebsite\Excel\Concerns\WithCustomCsvSettings;

class HogeExport implements WithCustomCsvSettings
{
    public function getCsvSettings(): array
    {
        return [
            'use_bom' => true
        ];
    }
}

##おまけ

excelでCSV(UTF-8)を作成した場合、BOMありUTF-8ファイルとして作成される。
作成したCSVファイルをインポートすると、一行目の一列目を正しく認識できない事象が発生する。
そんなときは、BOMを削除してあげればいい。

preg_replace('/^\xEF\xBB\xBF/', '', $hoge); // $hogeは一行目一列目の変数
3
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?