Файл csv в excel открывается иероглифами mac

Обновлено: 04.07.2024

У нас есть веб-приложение, которое экспортирует CSV-файлы, содержащие иностранные символы с UTF-8, без спецификации. Пользователи Windows и Mac получают символы мусора в Excel. Я попытался преобразовать в UTF-8 С BOM; Excel/Win в порядке с ним, Excel/Mac показывает тарабарщину. Я использую Excel 2003 / Win, Excel 2011 / Mac. Вот все кодировки, которые я пробовал:

лучшим является UTF-16LE с BOM, но CSV не распознается как таковой. Разделитель полей запятая, а точка с запятой не изменяется вещи.

есть ли кодировка, которая работает в обоих мирах?

Кодировки Excel

нашел WINDOWS-1252 кодировка наименее неприятно, общаясь с Excel. Поскольку его в основном Microsofts собственный проприетарный набор символов, можно предположить, что он будет работать как на Mac, так и на Windows версии MS-Excel. Обе версии, по крайней мере, включают соответствующий селектор "источник файла" или "кодировка файла", который правильно считывает данные.

в зависимости от вашей системы и инструментов, которые вы используете, эта кодировка также может быть названа CP1252 , ANSI , Windows (ANSI) , MS-ANSI или просто Windows среди прочих вариаций.

эта кодировка является надмножеством ISO-8859-1 (он же LATIN1 и другие), так что вы можете вернуться к ISO-8859-1 если вы не можете использовать WINDOWS-1252 по какой-то причине. Посоветуйте что ISO-8859-1 отсутствуют некоторые символы из WINDOWS-1252 как показано ниже:

отметим, что знак евро отсутствует. Эту таблицу можно найти по адресу Алан Древесины.

преобразование

преобразование выполняется по-разному в каждом инструменте и языке. Однако предположим, что у вас есть файл query_result.csv что ты знаешь это UTF-8 закодирован. Преобразуйте его в WINDOWS-1252 используя iconv :

для UTF-16LE с BOM если вы используете символы табуляции в качестве разделителей вместо запятых, Excel распознает поля. Причина его работы заключается в том, что Excel фактически использует свой Unicode *.парсер txt.

предостережение: если файл отредактирован в Excel и сохранен, он будет сохранен как ASCII с разделителями табуляции. Проблема в том, что при повторном открытии файла Excel предполагает, что это реальный CSV( с запятыми), видит, что это не Unicode, поэтому анализирует его как разделенный запятыми - и следовательно, сделает хэш из него!

обновление: вышеуказанное предостережение, похоже, не происходит для меня сегодня в Excel 2010 (Windows), по крайней мере, хотя, похоже, есть разница в сохранении поведения, если:

  • вы редактируете и выходите из Excel (пытается сохранить как ' Unicode *.txt')
  • редактирование и закрывающим тегом просто файлом (работает как положено).

The lowdown is: нет решения. Excel 2011 / Mac не может правильно интерпретировать CSV-файл, содержащий umlauts и диакритические метки, независимо от того, какую кодировку или прыжки обруча вы делаете. Я был бы рад услышать, что кто-то говорит мне другое!

вы только пробовали CSV, разделенные запятыми и точкой с запятой. Если бы вы попробовали CSV, разделенный вкладками (также называемый TSV) , вы бы нашли ответ:

UTF-16LE С BOM (метка порядка байтов), tab-разделены

но: в комментарии вы упоминаете, что TSV не является вариантом для вас (я не смог найти это требование в вашем вопросе). Какая жалость. Это часто означает, что вы разрешить ручное редактирование файлов TSV, что, вероятно, не является хорошей идеей. Визуальная проверка файлов TSV не является проблемой. Кроме того, редакторы могут быть настроены на отображение специального символа для пометки вкладок.

и да, я пробовал это на Windows и Mac.

лучшим обходным путем для чтения CSV-файлов с UTF-8 на Mac является их преобразование в формат XLSX. Я нашел скрипт, сделанный Конрадом Ферстнером, который я немного улучшил, добавив поддержку для разных символов-разделителей.

вот ключ к импорту CSV в кодировке utf8 в Excel 2011 для Mac: Microsoft говорит: "Excel для Mac в настоящее время не поддерживает UTF-8."Excel для Mac 2011 и UTF-8

Yay, способ пойти MS!

Мне кажется, что Excel 2011 для Mac OS не использует кодировку.GetEncoding ("10000"), как я думал, и потратил 2 дня, но тот же iso, что и на Microsoft OS. Лучшее доказательство этого-сделать файл в Excel 2011 для MAC со специальными символами, сохранить его как CSV, а затем открыть его в текстовом редакторе MAC, и символы будут скремблированы.

для меня этот подход работал-это означает, что экспорт csv в Excel 2011 на MAC OS имеет специальные западноевропейские символы внутри:

UTF-8 без спецификации в настоящее время работает для меня в Excel Mac 2011 14.3.2.

UTF-8 + BOM вид работ, но BOM отображается как тарабарщина.

UTF-16 работает, если вы импортируете файл и завершаете мастер, но не если вы просто дважды щелкните его.

следующее работало для меня в Excel для Mac 2011 и Windows Excel 2002:

используя iconv на Mac, преобразуйте файл в UTF-16 Little-Endian + name it *.txt (the .расширение txt заставляет Excel запускать мастер импорта текста):

iconv -f UTF-8 -t UTF-16LE filename.csv >filename_UTF-16LE.csv.txt

откройте файл в Excel и в Мастере импорта текста выберите:

  • Шаг 1: файла: игнорируйте его, не имеет значения, что вы выбираете
  • Шаг 2: Выберите правильные значения для разделители и квалификатор текста
  • Шаг 3: при необходимости выберите форматы столбцов

PS UTF-16LE, созданный iconv, имеет BOM bytes FF FE в начале.

PPS мой исходный csv-файл был создан на компьютере с Windows 7 в формате UTF-8 (с байтами BOM EF BB BF в начале) и использовал разрывы строк CRLF. Запятая используется в качестве разделителя полей и одинарная кавычка в качестве квалификатора текста. Он содержал буквы ASCII плюс разные латинские буквы с тильдами, умлаутом и т. д., а также кириллицу. Все отображается правильно как в Excel для Win и Mac.

ППС точные версии программного обеспечения:
* Mac OS X 10.6.8
* Excel для Mac 2011 V. 14.1.3
* Windows Server 2003 SP2
* Windows Excel 2002 V. 10.2701.2625

в моем случае это сработало (Mac, Excel 2011, как кириллица, так и латинские символы с чешскими диакритиками):

  • кодировка UTF-16LE (просто UTF-16 было недостаточно)
  • BOM "\xFF\xFE"
  • \t (tab) в качестве разделителя
  • не забудьте также кодировать разделитель и CRLFs: -)
  • используйте iconv вместо mb_convert_encoding

в моей Mac OS Text Wrangler определил CSV-файл, созданный с помощью Excel, как имеющий "Западную" кодировку.

после некоторого googling я сделал этот небольшой скрипт (я не уверен в доступности Windows, возможно, с Cygwin?):

вместо csv, пытаясь вывести html с расширением XLS и mime-типом" application/excel". Я знаю, что это будет работать в Windows, но не могу говорить за MacOS

Это работает для меня

  1. откройте файл в BBEdit или TextWrangler*.
  2. установите файл как Unicode (UTF-16 Little-Endian) (окончания строк могут быть Unix или Windows). Спасите!
  3. В Excel: Данные > Получить Внешние Данные > Импортировать Текстовый Файл.

теперь ключевой момент, выберите MacIntosh как источник файла (это должен быть первый выбор).

Это использование Excel 2011 (версия 14.4.2)

*есть мало выпадающий список в нижней части окна

решите это с помощью java (UTF-16LE с BOM):

обратите внимание, что CSV-файл должен использовать TAB в качестве разделителя. Вы можете прочитать CSV-файл как в windows, так и в MAC OS X.


Пошаговое иллюстрированное руководство

Если открыть файл в формате CSV в программе Excel 2016, обычно вместо таблицы с данными получаешь какие-то непонятные строки текста:


Здесь сразу две проблемы: вместо кириллических символов Эксель подсунул что-то нечитаемое, а данные в каждой строке поместил в одну ячейку, разделив их запятыми.

Стоит ли беспокоиться и почему это со мной происходит?

Не переживайте, с вашими данными всё в порядке и ничего необратимого не случилось.

Превращение в кашу осмысленного теста, набранного кириллицей, происходит из-за неверной кодировки. По умолчанию Эксель использует кодировку 1251: Кириллица для Windows , но есть и другие форматы. Так, в нашем случае текст закодирован по стандарту UTF-8 . Это распространённая кодировка, поэтому и проблема чтения кириллицы встречается часто.

Данные слиплись по строкам тоже не случайно. CSV — Comma-Separated Values — текстовый формат, данные в котором разделены запятыми. Что, в общем-то, можно увидеть и на скриншоте.

Что сделать, чтобы получить таблицу

Для этого в Экселе предусмотрена команда Данные → Получить данные → Из файла → Из текстового/CSV-файла:


После выбора нужного файла и подтверждения (кнопка «Открыть») появляется диалоговое окно с предварительным просмотром и некоторыми настройками.

Кириллица всё ещё страдает, но данные уже оформлены в таблицу:


Поменять кодировку можно выбрав подходящую (в нашем случае это Юникод UTF-8) в выпадающем списке «Источник файла».

Обратите внимание, что есть возможность выбрать и «Разделитель». Это полезно для других текстовых форматов хранения данных. По умолчанию в качестве разделителя выбрана Запятая, что нам подходит.


Теперь всё в полном порядке: кириллические символы читаемы, а данные — в таблице. Можно жать на кнопку «Загрузить».


После этого диалоговое окно закрывается, а в Книге Эксель появляется отдельный Лист с данными из CSV-файла в привычном табличном виде:


И весь процесс в одной гифке:

Если у вас более ранняя версия Майкрософт Офиса, посмотрите пошаговое руководство открытия CSV-файла в Экселе 2013. Там, кстати, есть и альтернативный вариант — воспользоваться открытым пакетом LibreOffice.

CSV в Excel: как открыть без искажения данных и смены кодировки | Веб студия СтартUP

Несмотря на популярность формата при открытии этих данных в Excel начинаются проблемы - Excel изменяет содержимое ячеек еще до того, как вы его увидите! Он обрезает нули у артикулов, превращает штрих-коды и числовые данные в даты, обрезает длину описаний и ведет себя как сырой продукт из-за автоматического форматирования данных! И самое печальное в этой истории - это никак не отключить. Это фундаментальная неграмотность разработчиков, ведь данные должны открываться как есть и без нашего разрешения/действия меняться не должны. И вроде бы в программе есть импорт CSV, где можно выбрать кодировку и разделители, но файлы открываются все равно криво и исправления мы вряд ли дождемся.

Если Excel убирает нули артикулов и цифр и искажает данные CSV

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

Excel и utf-8: файл CSV открывается с каракулями, кракозябрами и иероглифами

Это очень частая проблема открытия CSV в Excel. Проблема в том, что эксель работает только с кириллической кодировкой Windows-1251. В некоторых CMS, например в CS-Cart экспорт производится только в кодировке UTF-8, из за чего работа с файлом в Excel становится невозможной. Чтобы постоянно не менять кодировку файла "на коленках" и исключить вероятность ошибки по невнимательности при работе с большим количеством файлов мы обновили надстройку, приложенную ниже. Теперь перед импортом CSV файла вы можете выбрать кодировку.

Функции надстройки:

  1. Возможность выбирать разделители
  2. Возможность выбора кодировки открываемого файла
  3. Открытие ячеек в текстовом формате, без искажения данных, каракулей и иероглифов
  4. Контроль правильности разбивки ячеек

После этого в верхней части программы Excel появится вкладка "Надстройки", в которой будет 3 пункта - для открытия CSV файла и для смены кодировки и разделителей открываемого CSV файла.


Обратите внимание что все CSV файлы нужно открывать только через кнопку "Открыть CSV".

Как открыть CSV в Libreoffice/OpenOffice

Многие из-за этой проблемы переходят на LibreOffice (либо его более худшего брата OpenOffice). При открытии файла CSV тут тоже не все гладко, но хотя бы додумались до окна перед открытием файла, где можно указать тип ячеек как "Текст".

К сожалению сложные формулы в этих офисных пакетах работают очень часто некорректно, поэтому полноценную замену Excel они дать не могут.

Кодировка текста в Microsoft Excel

С потребностью менять кодировку текста часто сталкиваются пользователи, работающие браузерах, текстовых редакторах и процессорах. Тем не менее, и при работе в табличном процессоре Excel такая необходимость тоже может возникнуть, ведь эта программа обрабатывает не только цифры, но и текст. Давайте разберемся, как изменить кодировку в Экселе.

Работа с кодировкой текста

Кодировка текста – эта набор электронных цифровых выражений, которые преобразуются в понятные для пользователя символы. Существует много видов кодировки, у каждого из которых имеются свои правила и язык. Умение программы распознавать конкретный язык и переводить его на понятные для обычного человека знаки (буквы, цифры, другие символы) определяет, сможет ли приложение работать с конкретным текстом или нет. Среди популярных текстовых кодировок следует выделить такие:

  • Windows-1251;
  • KOI-8;
  • ASCII;
  • ANSI;
  • UKS-2;
  • UTF-8 (Юникод).

Последнее наименование является самым распространенным среди кодировок в мире, так как считается своего рода универсальным стандартом.

Чаще всего, программа сама распознаёт кодировку и автоматически переключается на неё, но в отдельных случаях пользователю нужно указать приложению её вид. Только тогда оно сможет корректно работать с кодированными символами.

Некорректные символы в Microsoft Excel

Наибольшее количество проблем с расшифровкой кодировки у программы Excel встречается при попытке открытия файлов CSV или экспорте файлов txt. Часто, вместо обычных букв при открытии этих файлов через Эксель, мы можем наблюдать непонятные символы, так называемые «кракозябры». В этих случаях пользователю нужно совершить определенные манипуляции для того, чтобы программа начала корректно отображать данные. Существует несколько способов решения данной проблемы.

Способ 1: изменение кодировки с помощью Notepad++

К сожалению, полноценного инструмента, который позволял бы быстро изменять кодировку в любом типе текстов у Эксель нет. Поэтому приходится в этих целях использовать многошаговые решения или прибегать к помощи сторонних приложений. Одним из самых надежных способов является использование текстового редактора Notepad++.

    Запускаем приложение Notepad++. Кликаем по пункту «Файл». Из открывшегося списка выбираем пункт «Открыть». Как альтернативный вариант, можно набрать на клавиатуре сочетание клавиш Ctrl+O.

Переход к отрытию файла в Notepad++

Открытие файла в Notepad++

Изменение кодировки файла в Notepad++

Сохранение файла в Notepad++

Корректное отображение символов в Microsoft Excel

Несмотря на то, что данный способ основан на использовании стороннего программного обеспечения, он является одним из самых простых вариантов для перекодировки содержимого файлов под Эксель.

Способ 2: применение Мастера текстов

Кроме того, совершить преобразование можно и с помощью встроенных инструментов программы, а именно Мастера текстов. Как ни странно, использование данного инструмента несколько сложнее, чем применение сторонней программы, описанной в предыдущем методе.

    Запускаем программу Excel. Нужно активировать именно само приложение, а не открыть с его помощью документ. То есть, перед вами должен предстать чистый лист. Переходим во вкладку «Данные». Кликаем на кнопку на ленте «Из текста», размещенную в блоке инструментов «Получение внешних данных».

Переход к добавлению текста в Microsoft Excel

Импорт файла в Microsoft Excel

Переход к выбору кодировки в Мастере текстов в Microsoft Excel

Мастер текстов в Microsoft Excel

Второе окно мастера текста в Microsoft Excel

  • Общий;
  • Текстовый;
  • Дата;
  • Пропустить столбец.

Третье окно мастера текста в Microsoft Excel

Координаты вставки в Microsoft Excel

Текст добавлен в файл в Microsoft Excel

Способ 3: сохранение файла в определенной кодировке

Бывает и обратная ситуация, когда файл нужно не открыть с корректным отображением данных, а сохранить в установленной кодировке. В Экселе можно выполнить и эту задачу.

    Переходим во вкладку «Файл». Кликаем по пункту «Сохранить как».

Переход в сохранить как в Microsoft Excel

Переход в сервис в Microsoft Excel

Параметры веб-документа в Microsoft Excel

Сохранение файла в Microsoft Excel

Документ сохранится на жестком диске или съемном носителе в той кодировке, которую вы определили сами. Но нужно учесть, что теперь всегда документы, сохраненные в Excel, будут сохраняться в данной кодировке. Для того, чтобы изменить это, придется опять заходить в окно «Параметры веб-документа» и менять настройки.

Существует и другой путь к изменению настроек кодировки сохраненного текста.

    Находясь во вкладке «Файл», кликаем по пункту «Параметры».

Переход в параметры в Microsoft Excel

Переход в параметры документа в Microsoft Excel

Параметры веб-документа в Microsoft Excel

Теперь любой документ, сохраненный в Excel, будет иметь именно ту кодировку, которая была вами установлена.

Как видим, у Эксель нет инструмента, который позволил бы быстро и удобно конвертировать текст из одной кодировки в другую. Мастер текста имеет слишком громоздкий функционал и обладает множеством не нужных для подобной процедуры возможностей. Используя его, вам придется проходить несколько шагов, которые непосредственно на данный процесс не влияют, а служат для других целей. Даже конвертация через сторонний текстовый редактор Notepad++ в этом случае выглядит несколько проще. Сохранение файлов в заданной кодировке в приложении Excel тоже усложнено тем фактом, что каждый раз при желании сменить данный параметр, вам придется изменять глобальные настройки программы.

Закрыть

Мы рады, что смогли помочь Вам в решении проблемы.

Отблагодарите автора, поделитесь статьей в социальных сетях.

Закрыть

Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.

Читайте также: