Asked Jan 21st, 3:22 PM 80 0 2
  • 80 0 2
0

Hỏi về cách set encoding khi export CSV sử dụng Laravel Excel

Share
  • 80 0 2

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ư:

  1. Đổi setting trong excel.php
    'use_bom' => false,
  2. 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!

2 ANSWERS


Answered Jan 25th, 1:18 AM
Accepted
+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);
Share
Answered Jan 26th, 6:08 AM
0

Bạn thử cách này xem input_encoding' => 'Shift-JIS'. Trong file excel.php

Share
Ngân Kim @ngankim
Jan 26th, 1:36 PM

cái đó là setting cho phần import bạn ơi, mình đang cần set encoding cho export.

0
| Reply
Share