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

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

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

5
задан user2945722
12.02.2023 9:29 Количество просмотров материала 3144
Распечатать страницу

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 2023-02-13 17:17

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх