Yêu cầu thg 1 21, 2021 3:22 CH 1279 0 2
  • 1279 0 2
0

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

Chia sẻ
  • 1279 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 CÂU TRẢ LỜI


Đã trả lời thg 1 25, 2021 1:18 SA
Đã được chấp nhận
+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);
Chia sẻ
Đã trả lời thg 1 26, 2021 6:08 SA
0

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

Chia sẻ
Avatar Ngân Kim @ngankim
thg 1 26, 2021 1:36 CH

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