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

Как построить 3D графики в Excel из данных CSV?
Удаление лишних запятых в CSV без использования другого источника данных
Как разбить таблицу, содержащую CSV, на несколько столбцов?
Экспорт всей базы данных Access (accdb) в csv / txt
PowerShell-CSV (импорт/экспорт) удаляет кавычки
Excel сохранить поведение CSV-файла с кодировкой UTF8 против UTF8-Bom кодировки
Как управлять импортом CSV в Excel 2010
Легкий просмотрщик CSV для Mac? [закрытый]
Импорт CSV-файла с помощью powershell с помощью переменной path
Как конвертировать Excel файл с несколькими листами в набор CSV файлов?
Как добавить префикс к каждой строке определенного столбца в файле csv с помощью командной строки в linux
Чтение данных из отдельного CSV-файла в OpenOffice Calc
Экспорт кириллицы из Excel в CSV
Импорт из csv в Libreoffice Calc с использованием "двух пробелов" в качестве разделителя
Удаление всех разрывов строк между двумя соответствующими переменными в notepad++

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