2023年2月2日
Laravel ExcelでのCSVファイルアップロードがうまくいく場合とうまくいかない場合があるケースの原因と解決法
※本ページはアフィリエイトプログラムによる収益を得ています
Laravel Excelで作ったサイトで、Excelから別名保存で書き出したCSVファイルをアップロードしようとした時にうまくいかないケースがありました。
結論から言うと、ずばり文字コードが原因です。
各種ソフトによって吐き出されるCSV上の文字コードが違うのは盲点でした。
【各種ソフトによる文字コード】
・WindowsのExcelからCSVを書き出した場合:Shift-JIS
・GoolgleスプレッドシートからCSVを書き出した場合:UTF-8
・MacのNumbersからCSVを書き出した場合:UTF-8
で、Laravel Excelのデフォルトの読み込み設定は何になっているかというと
・Laravel Excelデフォルト設定:UTF-8
でした。
Macで開発してGoogleスプレッドシートでCSVを吐き出している自分のファイルではうまくいってたのが、クライアント先のExcelから吐き出したCSVではどうやってもうまくいかない原因がこれでした。
じゃあLaravel Excelのデフォルト設定UTF-8をShift-JIS対応に変更するにはどうするか、これはまた後日追記します。