Laravel-excel: ПОМОЩЬ! Специальные символы, такие как ñ, преобразуют слово в число 0 при импорте.

Созданный на 1 мар. 2020  ·  5Комментарии  ·  Источник: Maatwebsite/Laravel-Excel

Предпосылки

Версии

  • Версия PHP: 7.2
  • Версия Laravel: 5.8
  • Версия пакета: ^ 3.1

Описание


У меня есть файл CSV с некоторыми строками, в которых есть текст / слова, содержащие специальный символ, например ñ , произошло то, что когда я попытался импортировать файл, слова с символами выше или похожими будут преобразованы в 0 . Не уверен, связано ли это с кодированием, я нашел несколько решений в StackOverflow, но ни одно из них, похоже, не работает.

Дополнительная информация

Я использую ToModel
use Maatwebsite\Excel\Concerns\ToModel;

Чтобы воспроизвести это, просто попробуйте поместить специальный символ в одну из ячеек вашего CSV, а затем импортируйте его, например:
Excel::import(new CsvImport, request()->file('file'));

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

question

Самый полезный комментарий

Кто-нибудь из вас, ребята, испытал это?

Все 5 Комментарий

Кто-нибудь из вас, ребята, испытал это?

Да, я тоже @fmsthird

то же самое здесь @fmsthird

Попробуйте установить кодировку ввода для кодировки, в которой находится ваш файл: https://github.com/Maatwebsite/Laravel-Excel/blob/3.1/config/excel.php#L76

Проблема в том, что файлы csv генерируются из третьей системы, которую я не контролирую, и поставляется с charset = unknown-8bit, поэтому кодировка не определена в исходном файле, и для циклического перебора каждого символа файлы csv содержат сотни тысяч строк который может истечь до завершения

Была ли эта страница полезной?
0 / 5 - 0 рейтинги