Maatwebsite / Laravel-Excel Import преобразует специальные символы в число 0

У меня есть файл CSV с несколькими строками, в которых есть текст / слова, содержащие специальный символ, например ñ,

Произошло следующее: когда я попытался импортировать CSV-файл, слова с указанными выше или похожими символами будут преобразованы в 0.

Я использую ToModel

use Maatwebsite\Excel\Concerns\ToModel;

Чтобы воспроизвести это, просто попробуйте поместить специальный символ в одну из ячеек вашего CSV-файла, а затем импортируйте его, например:

Excel::import(new CsvImport, request()->file('file'));

Вывод: Результирующие вставленные данные со специальным символом будут сохранены как 0

Примечание. Добавление данных непосредственно из формы не преобразует специальные символы в 0, только при загрузке CSV через импорт.


person fmsthird    schedule 12.03.2020    source источник
comment
сделайте вашу сортировку как utf8_general_ci   -  person Dilip Hirapara    schedule 12.03.2020
comment
@DilipHirapara это уже установлено   -  person fmsthird    schedule 12.03.2020
comment
А какой у тебя вопрос? Помогает ли github.com/Maatwebsite/Laravel-Excel/issues/431?   -  person Nico Haase    schedule 12.03.2020
comment
Я проверил ссылку, но предоставленное решение, похоже, не работает, также я использую импорт, а не загрузку   -  person fmsthird    schedule 12.03.2020


Ответы (2)


В вашей конфигурации установите для use_bom значение true

    'csv'                    => [
        'delimiter'              => ',',
        'enclosure'              => '"',
        'line_ending'            => PHP_EOL,
        'use_bom'                => true,
        'include_separator_line' => false,
        'excel_compatibility'    => false,
    ],
person mpalencia    schedule 17.09.2020

Эта работа для меня:

$data = Excel::load('file.csv', false, 'ISO-8859-1');

Или в конфигурации файла excel config / excel.php

      'csv'                    => [
        'delimiter'              => ';',
        'input_encoding'         => 'ISO-8859-1',
        'enclosure'              => '"',
        'line_ending'            => PHP_EOL,
        'use_bom'                => false,
        'include_separator_line' => false,
        'excel_compatibility'    => true,
    ],
person Gustavo Marquez    schedule 27.03.2021