Yêu cầu Jan 21st, 2021 3:22 p.m. 1084 0 2
  • 1084 0 2
0

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

Chia sẻ
  • 1084 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 Jan 25th, 2021 1:18 a.m.
Đã đượ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 Jan 26th, 2021 6:08 a.m.
0

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

Chia sẻ
Avatar Ngân Kim @ngankim
Jan 26th, 2021 1:36 p.m.

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

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí