Я использую 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.