Сохранить файл в типе CSV в Excel всегда удаляет BOM

Я пытался найти, что разумное решение/объяснение (неудачно) узнает, почему значения по умолчанию Excel к удалению BOM, сохранив файл к CSV вводят.

Простите мне при нахождении этого дубликатом этого вопроса. Это обрабатывает файлы CSV чтения с кодированием неASCII, но оно не покрывает сохранение файла, отступают (который является, где самая большая проблема находится).

Вот моя текущая ситуация (который я собираюсь собрать, распространено среди локализованного программного обеспечения, имеющего дело с символами Unicode и форматом CSV):

  • Мы экспортируем данные в формат CSV с помощью UTF-16LE, удостоверяясь, что BOM установлен (0xFFFE). Мы проверяем после того, как файл сгенерирован с Hex-редактором, чтобы гарантировать, что он был установлен правильно.

  • Откройте файл в Excel (для этого примера, мы экспортируем японские символы), и свидетель, что дескрипторы Excel, загружающие файл корректным кодированием.

  • Попытки сохранить этот файл предложат Вам с предупреждающим сообщением, указывающим, что файл может содержать функции, которые не могут быть совместимы с кодированием Unicode, но спрашивают, требуется ли сохранить так или иначе.

  • При выборе Сохранения как диалогового окна оно сразу попросит, чтобы Вы сохранили файл как "текст Unicode", а не CSV. Если Вы выбираете расширение "CSV" и сохранили файл, это удаляет BOM (очевидно, наряду со всеми японскими символами).

Почему это произошло бы? Существует ли решение этой проблемы, или действительно ли это - известная 'ошибка '/limitation Excel?

Дополнительно (как второстепенный вопрос) кажется, что Excel, при загрузке UTF-16LE закодировал файлы CSV, только Разграничители табуляции использования. Снова, эта другая известная 'ошибка '/limitation Excel?

15
задан 23.05.2017, 15:41

1 ответ

Нет никаких вежливых ответов на вопросы формы, "Почему Excel делает X?".

Почему Вы только не принимаете, "Сохраняют как текст Unicode" как Ваш стандартный формат передачи? Excel Save as гарантирует, что существует BOM, ВКЛАДКА использования как разделитель, поля кавычек точно так же, как CSV...

Между прочим, Вы "не выбираете расширение CSV". У Вас есть ДВА варианта - формат и расширение. Попробуйте сохраняют как unicode текст в поле 'Save as type' и вручную изменяют расширение в поле 'File name' к csv. Затем выход от Excel и дважды щелкает по имени файла в Windows Explorer. Открывается прекрасный.Попробуйте.

Обновление для обсуждения комментариев OP:

  • "Сохраните, поскольку текст Unicode" (в Excel 2007) всегда сохранит Ваш файл как текстовое расширение (я не могу говорить за предыдущие или более новые версии). Это - идея, "Сохраняют как тип"...

=> Считайте тщательно, что я записал выше, и испытайте его для Вашего сам. Это всегда сохранит Ваш файл с расширением TXT, если Вы не переопределите это: удалите txt в поле 'File name' и типе csv.

  • Для разъяснения "Excel Save as гарантируют, что существует BOM", является неправильным.

=> "Сохраняют, поскольку текст Unicode" гарантирует, что существует BOM UTF-16LE впереди файла. Попробуйте его и посмотрите.

  • Это - причина, которую я задал вопросу во-первых! Если я открываю, CSV отформатировал файл, который содержит BOM, чтобы указать, что мое Кодирование файла является UFT-16LE, и измените этот файл через Excel, я ожидаю, когда я сохраню этот файл, которым Кодирование остается в такте...

=> и Ваши ожидания не встречены, потому что Excel не сохраняет информации о входных файлах CSV. Нет никакого способа вынудить это сделать то, что Вы хотите сделать. Таким образом, Вы или сдаетесь или пробуете что-то еще, как то, что я предлагаю.

  • То, что было бы действительно хорошо, является кем-то, кто испытал эти проблемы прежде, обеспечьте свое понимание.

=> Я испытал эти проблемы, с китайскими данными и Excel 1997, несколько лет назад. Я, прежде, чем ответить на Ваш вопрос, проверил с Excel 2003 и Excel 2007, что Excel все еще ведет себя плохо. Я проверил, что "сохраняют как тип = текст Unicode, расширение =, CSV" обходное решение действительно работает. Я обеспечил свое понимание.

6
ответ дан 07.12.2019, 11:10

Теги

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