0
Hỏi về cách set encoding khi export CSV sử dụng Laravel Excel
Chào mọi người, em đang dùng Laravel Excel để export CSV có nội dung tiếng Nhật.
E muốn thiết lập để cho file CSV xuất ra có encoding là SJIS, nhưng hiện tại nó luôn mặc định ra là UTF-8.
Anh chị có biết cách nào có thể thiết lập ko ạ ?
E đã thử vài cách mà vẫn chưa đc như:
- Đổi setting trong excel.php
'use_bom' => false,
- Convert encoding trước khi export
$exportData = mb_convert_encoding($exportData, "SJIS", "UTF-8");
$pblClassExport = new \App\Exports\pblClassExport($exportData, 'test.csv');
Rất mong nhận được sự support của mọi người ạ.
Em cảm ơn!
Thêm một bình luận
2 CÂU TRẢ LỜI
+1
Bạn thử sử dụng Excel::raw để get content của file csv ra, rồi convert tới encoding bạn muốn. Sau đó thực hiện download hay upload đi đâu thì tùy.
$exportedObject= new \App\Exports\ClassExport($exportDataArray, $fileName);
$csvContent = \Excel::raw($exportedObject, $exportedObject->writerType);
$csvContent = mb_convert_encoding($csvContent, 'SJIS', 'auto');
// In my case, I upload my csv to S3.
$storageInstance = \Storage::disk('s3_import_csvs');
$putFileOnStorage = $storageInstance->put($fileName, $csvContent);
cái đó là setting cho phần import bạn ơi, mình đang cần set encoding cho export.