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

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

Chia sẻ
  • 1070 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.

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í