Как экспортировать CSV-файл с кодировкой shift-jis в laravel? - PullRequest
0 голосов
/ 19 февраля 2020

Я использую laravel -excel для экспорта файла CSV. Чтобы экспортировать, код, как показано ниже,

 return Excel::download(new Export(results,$header), "test.csv");

И файл экспорта. php, как,

namespace App\AllClass;

use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\Exportable;
use Maatwebsite\Excel\Concerns\WithHeadings;

class Export implements FromCollection,WithHeadings
{
    private $myArray;
    private $header;

    public function __construct($myArray,$header){
        $this->myArray = $myArray;
        $this->header = $header;
    }

    public function collection()
    {
        $data = mb_convert_encoding($this->myArray,"SJIS", "UTF-8");
        // dump($data);
        return collect($data);
    }


    public function headings(): array
    {
        $header = mb_convert_encoding($this->header,"SJIS", "UTF-8");
        // dump($header);
        return $header;
    }
}

Как вы можете видеть, я преобразовываю данные перед созданием первенствует. Без конвертации я могу отлично экспортировать в формате UTF-8. Но после преобразования в shift-jis удаляются все японские символы. Однако, если я сбросил заголовок перед возвратом, он показывает мне данные gibberi sh; не пустая строка как файл csv.

...