失敗例
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は一行目一列目の変数