Похожие вопросы

Ошибки синтаксического анализа из-за специальных символов в записях DNS txt
grep строки строки из файла
Libreoffice Calc сохранение TSV в CSV без запроса
PowerShell-CSV (импорт/экспорт) удаляет кавычки
Преобразование XLS в CSV в Unix
Регулярное выражение Notepad ++: замените одну или несколько текстовых точек с запятой на тире, если точка с запятой является разделителем поля
Чтение данных из отдельного CSV-файла в OpenOffice Calc
Преобразование файла JSON в формат CSV или XLS (Excel)
Увеличение предельного размера импорта данных из csv в Excel
Импорт CSV-файла с помощью powershell с помощью переменной path
Разделить столбец имени на csv-файл
Преобразование CSV в фиксированную ширину в Notepad++?
Импорт Anki из CSV не работает
Импортированный CSV-файл в Excel, но не может преобразовать цифры из текста в удобный числовой формат для вычисления сумм
Как записать в CSV только определенные строки листа Excel?

Excel сохранить поведение CSV-файла с кодировкой UTF8 против UTF8-Bom кодировки

мои исходные файлы csv кодируются с UTF8-BOM, это так Excel может распознавать символы Юникода (если его просто кодируется с UTF8, то Excel не распознает символы юникода).

моя проблема в том, что с файлом CSV в кодировке UTF8, когда вы нажимаете кнопку Сохранить в Excel, это дает вам всплывающую возможность сохранить исходное форматирование. Однако, если файл закодирован в UTF8-BOM, то нажатие кнопки Сохранить выполняется мгновенно, и нет возможности сохранить форматирование. Затем файл CSV имеет запятые заменяются символами табуляции.

5
задан user2945722
источник

1 ответов

происходит следующее.

  1. Excel просматривает региональные настройки вашей системы, чтобы узнать, какой разделитель списка настроен, в вашем случае, запятая. Здесь важно отметить, что CSV это не единый, четко определенный формат. любой сепаратор может быть использован...(Edit: Ну, есть на самом деле руководство, который закрепляет разделитель до запятой, но это не является обязательным стандартом, и руководство не является строго следовал на практике.)
  2. затем excel преобразует данные в памяти в XLSX-файл. Ты делаешь свои выдающиеся вещи. Имейте в виду, что это фактически преобразование типа файла, и Excel не помнит, в какой кодировке был исходный файл или какой разделитель использовался.
  3. вы делаете апельсины, и нажмите кнопку Сохранить. На данный момент, Excel больше не имеет CSV-файл, но файл XLSX, и необходимо преобразовать его обратно во что-то "CSV-как". Потому что он знает кодировка должна быть UTF-8 С BOM, он решает сохранить как "Unicode text" (он делает это без явного упоминания об этом). В этом формате они используют файл UCS-2 с BOM в качестве кодировки и tab в качестве разделителя. Это не тот стандарт CSV, который вы имели в виду, или стандарт, в котором был отформатирован исходный файл. Странно и нелогично, но, строго говоря, не ошибся.

Итак, что вы можете сделать?

Теоретически вы должны иметь возможность использовать опцию Сохранить как CSV, и через меню сервис - > "Web options" (в диалоге сохранить как) установите кодировку в UTF8. Единственная проблема здесь в том, что это, кажется, не работает должным образом. Я предполагаю, что это сломанная функция. Подробнее об этом в Stack Overflow:Excel в CSV с кодировкой UTF8

Итак, что можно действительно делать?

Просто используйте UTF-8 BOM, используйте save и откройте полученный файл CSV, чтобы заменить все вкладки запятыми.

и что должны вы действительно ли?

Не используйте Excel для загрузки и редактирования файлов CSV. Или, по крайней мере, будь осторожнее...

Почему нет?

Я написал (слишком долго) статья об этом здесь.

10
отвечен Wouter 2018-06-18 11:15:45
источник

Другие вопросы csv encoding microsoft-excel microsoft-excel-2013