excel сохраняет загруженный CSV с разделением табуляции, но, как ни странно, не всегда

#download

#Скачать

Вопрос:

Когда я пытаюсь открыть и сохранить загруженный файл csv, excel заменяет запятые табуляциями. ОК. Но не для всех файлов.

Пользователи моего веб-приложения могут загружать 2 разных файла csv (один для сценария ошибки, а другой для успеха). Оба имеют одинаковый формат. Обе загрузки обрабатываются почти одинаковым кодом на сервере, содержат похожие заголовки HTTP-ответов, включая типы контента. Я ожидаю, что пользователь исправит файл с ошибкой, сохранит и загрузит. но когда они сохраняют (Ctrl S) с помощью Excel, он просто заменяет запятые на вкладки.

Вот странность: этого не происходит для файла успеха. Когда я нажимаю Ctrl S на файл успеха, он отлично сохраняется.

Примечание :

  • Оба файла имеют одинаковый формат. Я даже попробовал вариант использования, когда файлы ошибок и ошибок идентичны. Сравнивается с использованием Winmerge, и они одинаковы, включая пробелы
  • Если вы просто откроете и сохраните файл с ошибкой с помощью текстового редактора один раз, после этого Excel отлично обработает файл. Не удаляет запятые при сохранении.
  • типы mime для файлов такие же, как и для вывода file -I ( текст / обычный; кодировка = us-ascii ). Заголовки ответов и типы содержимого во время загрузки одинаковы (текст / csv)
  • происходит со всеми браузерами, как в Windows, так и в macOS.

Вот примеры файлов.Вы должны иметь возможность загружать их и воспроизводить ошибку. Они тоже идентичны.

Файл успеха

Файл с ошибкой

Ответ №1:

Основная причина, которую мы обнаружили, заключается в том, что BOM (byte object marker) имеет значение UTF-8 в файле успеха, но не в файле ошибки. Странно, почему это вызвало эту проблему.