Parus16.ru

Парус №16
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Как выбрать кодировку в xls

Как выбрать кодировку в xls

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

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

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

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

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

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

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

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

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

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

После этого, чтобы сохранить изменения в файле жмем на кнопку на панели инструментов в виде дискеты. Закрываем Notepad++, нажав на кнопку в виде белого крестика в красном квадрате в верхнем правом углу окна.

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

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

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

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

  • TXT;
  • CSV;
  • PRN.

Переходим в директорию размещения импортируемого файла, выделяем его и кликаем по кнопке «Импорт».

Открывается окно Мастера текстов. Как видим, в поле предварительного просмотра символы отображаются некорректно. В поле «Формат файла» раскрываем выпадающий список и меняем в нем кодировку на «Юникод (UTF-8)».

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

Открывается следующее окно Мастера текста. Тут можно изменить знак разделителя, но рекомендуется оставить настройки по умолчанию (знак табуляции). Жмем на кнопку «Далее».

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

Тут настройки следует выставить, учитывая характер обрабатываемого контента. После этого жмем на кнопку «Готово».

В следующем окне указываем координаты левой верхней ячейки диапазона на листе, куда будут вставлены данные. Это можно сделать, вбив адрес вручную в соответствующее поле или просто выделив нужную ячейку на листе. После того, как координаты добавлены, в поле окна жмем кнопку «OK».

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

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

Читайте так же:
Можно ли подключить принтер без установочного диска

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

Открывается окно сохранения документа. С помощью интерфейса Проводника определяем директорию, где файл будет храниться. Затем выставляем тип файла, если хотим сохранить книгу в формате отличном от стандартного формата Excel (xlsx). Потом кликаем по параметру «Сервис» и в открывшемся списке выбираем пункт «Параметры веб-документа».

В открывшемся окне переходим во вкладку «Кодировка». В поле «Сохранить документ как» открываем выпадающий список и устанавливаем из перечня тот тип кодировки, который считаем нужным. После этого жмем на кнопку «OK».

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

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

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

Открывается окно параметров Эксель. Выбираем подпункт «Дополнительно» из перечня расположенного в левой части окна. Центральную часть окна прокручиваем вниз до блока настроек «Общие». Тут кликаем по кнопке «Параметры веб-страницы».

Открывается уже знакомое нам окно «Параметры веб-документа», где мы проделываем все те же действия, о которых говорили ранее.

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

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

Как открыть в Excel файл CSV с разделителем запятая?

Многие из нас используют Google инструмент для веб-мастеров только для добавления сайта. Это неправильно, здесь есть масса полезной информации, например список поисковых запросов, по которым пользователи находят и заходят на сайт. Смотрите отчет: Поисковый трафик > Поисковые запросы – предварительно выбрав нужный сайт в списке.

Здесь же есть и экспорта данных в CSV-формате, с возможностью его открытия в Google Таблицы (онлайн аналог Excel) . Ищите кнопку «Загрузить эту таблицу». К слову, количество отображаемых запросов на странице не влияет на полноту экспортируемых данных.

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

проблемы с кодировкой в Google Таблицы при открытии экспортируемого CSV файла в кодировке UTF-8

Другими словами, нам нужно изменить кодировку на ANSI. А для открытия файла CSV в Excel заменить и разделитель запятой (,) на символ точки с запятой (;) .

CSV с разделителем запятая в UTF-8

Проблема с кодировкой

Проще всего решить проблему с кодировкой. Для этого вы можете использовать любой текстовый редактор с этой функцией, например Notepad++. Его вы можете скачать бесплатно на официальном сайте: unotepad-plus-plus.org. Далее запускаем редактор и открываем в нём наш CSV-файл, а потом кликаем пункт меню «Кодировки» и меняем на нужную, т.е. пункт «Преобразовать в ANSI».

преобразование кодировки файла в Notepad++ и удаление BOM

У меня на картинке показан обратный процесс: преобразования из ANSI в UTF-8 – но, думаю, вы это и сами заметилии, а принцип тот же.

Разделитель запятая в CSV

Теперь, что касается разделителя запятой. По сути, для Google Таблиц что-то менять не надо. Да и в англоязычной версии MS Excel это может прокатить, проверьте. Тем не менее, если нужна замена, то здесь следует учесть, что просто заменить запятую (,) на символ точки с запятой (;) не получится, т.к. в файле могут быть значения, содержащие этот символ. Они обычно помещены в кавычки. Например:

значение,1,»значение, с запятой»,

По идее здесь должна помочь настройка самой операционной системы Windows: Пуск > Панель управления > Язык и региональные стандарты. На вкладке «Форматы» кликаем кнопку «Изменить этот формат…» В открывшемся окне, на вкладке «Числа» замените «Разделитель элементов списка» на нужный, т.е. символ точки с запятой (;) меняем на запятую (,) .

Читайте так же:
Банк открытие точка личный кабинет

изменения разделителя элементов списка в настройках операционной системы Windows

Правда, у меня это не сработало. Да и менять настройки операционной системы, как по мне, дело не благодатное. Тем не менее, я решил указать этот вариант решения проблемы, т.к. на большинстве специализированных форумов ссылаются именно на него.

То, что помогло

Увы, но какой-то дополнительной обработки файлов с расширением .csv в MS Excel я не нашел. Тем не менее, есть возможность обработки, но только в том случае, если сменить расширение файла, например, на .txt . Так что меняем расширение файла и открываем его в Excel.

Появится окно «Мастер текстов (импорт)». Здесь вы можете выбрать формат исходных данных, начальную строку импорта и кодировку файла (нам нужна 1251 : Cyrillic ) . К слову, почему нужно было менять кодировку, когда её можно выбрать в мастере? Потому, что кодировки UTF-8, по крайней мере у меня, здесь нету. Кликаем кнопку «Далее».

выбор формата исходных данных, начальной строки импорта и кодировки файла в мастере текстов MS Excel

На следующем шаге мы можем выбрать символ-разделитель, причем несколько. Ставим галочку «запятая» и убираем галочку «знак табуляции». Здесь же можно выбрать и символ ограничителя строк. Это тот, что используется для значений, в которых присутствуют спецсимволы (двойные кавычки, запятая, точка с запятой, новая строка и т.д.) . Вариант с двойной кавычкой, в моём случае, это то, что надо. Обратите внимание на поле «Образец разбора данных», данные стали таблицей. Кликаем кнопку «Далее».

выбор символа-разделителя и символа ограничителя строк в мастере текстов MS Excel

На последнем шаге можно указать формат данных столбцов, правда выбор здесь не велик: общий (по умолчанию) , текстовый, дата и пропустить столбец. Последний вариант представляется мне наиболее интересным, т.к. позволяет сразу исключить ненужные столбцы. Просто выберите соответствующий столбец и кликните для него вариант «пропустить столбец». Кликаем кнопку «Готово».

выбор формата данных столбцов и их пропуск в мастере текстов MS Excel

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

Онлайн сервис для нормализации CSV-файлов

Впрочем, все выше изложенные проблемы решает простой онлайн сервис Normalization CSV. Он позволяет менять кодировку и символ разделителя. Правда существует ограничение в 64 000 байтов (сколько это в Кб?) для загружаемого файла, но CSV-файлы обычно весят не очень много, должно хватить. Результат обработки выводится как обычный текстовый файл, его можно сохранить с расширением .csv .

бесплатный онлайн сервис для нормализации CSV-файлов

К слову, скрипт преобразовавает значение процентов, например: 95 % – в нужное значение для столбца «проценты» в Excel, т.е. делится на 100 и получаем число с плавающей запяток, например: 0,95 . Если нужны ещё какие-то преобразования: пишите, попробуем доработать.

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

Подведём итоги

Некоторые онлайн сервисы предоставляют возможность экспорта данных в просто и удобном CSV-формате. Как следует из названия, подразумевает использование в качестве разделителя символ запятой (,) . Однако, многие приложения трактуют этот формат несколько своевольно, что приводит к закономерным проблемам. К тому же сейчас всё более популярна кодировка UTF-8, в то время как Excel или Google Таблицы используют ANSI.

Решить проблему с кодировкой поможет, к примеру, Notepad++, а для того, чтобы разобраться с разделителем, достаточно изменить расширение файла на .txt и воспользоваться мастером текстов в Excel. Впрочем, все эти задачи способен решить бесплатный онлайн сервис Normalization CSV, правда стоит учесть его ограничение на объём загружаемого файла. На этом у меня всё. Спасибо за внимание. Удачи!

Короткая ссылка: http://goo.gl/rAe1Xb

Сейчас в инете дофига различный csv конверторов, которые всё это понимают и настраивают. Да и софта такого рода хватает.

23 января 2014 г., 13:21 Удалить комментарий

Константин Кирилюк

@Максим безусловно, вариантов решения данной проблемы существует достаточно много. В тоже время, практика показывает, что люди склонный использовать то, что есть под рукой и чем оно проще тем лучше. В случае с Normalization CSV мы имеем не столько csv конвертор, сколько нормализатор, который работает исходя из особенностей экспорта данных онлайн сервисов, в частности Google инструмента для веб-мастеров.

23 января 2014 г., 15:25 Удалить комментарий

@Константин Кирилюк если судить по показателям соцкнопочек, то люди выбирают не самые простые решения и отдают предпочтение перекодированию, переименовыванию и мастертекстовованию 🙂

29 января 2014 г., 19:10 Удалить комментарий

Константин Кирилюк

@Максим ну, не всё так сразу. К тому же популяризацией своего сервиса я не занимался, да и не стремлюсь. несколько опасаюсь нагрузок. Так что пусть используют вот такие, далеко не простые решения, а кому надо могут воспользоваться и сервисом.

Читайте так же:
Ифнс по г чебоксары личный кабинет

30 января 2014 г., 10:42 Удалить комментарий

Заметил траблу с Normalization CSV. Если в CSV файле присутствует символ бесконечности ∞ то на нём всё и стопорится, по крайней мере если делать смену кодировки из UTF-8 в ANSI.

1 февраля 2014 г., 5:21 Удалить комментарий

Константин Кирилюк

@Максим да, была такая проблема. Пытался и так и эдак, но пришлось заменить этот символ на знак вопроса. Это самый оптимальный вариант, который я вижу на данный момент. Как я понял проблема в iconv мутках.

1 февраля 2014 г., 6:09 Удалить комментарий

28 августа 2014 г., 11:52 Удалить комментарий

Помимо ',' в Разделитель элементов списка в разделе Числа — Разделитель целой и дробной части поставьте '.' и все заработает

3 сентября 2014 г., 11:52 Удалить комментарий

Константин, большое спасибо

25 октября 2015 г., 22:23 Удалить комментарий

Помимо ',' в Разделитель элементов списка в разделе Числа — Разделитель целой и дробной части поставьте '.' и все заработает

вот это очень помогло. спасибо анониму от анонима! большое спасибо!

12 августа 2016 г., 16:36 Удалить комментарий

чувак, отличная публикация. благодарю

1 сентября 2016 г., 18:31 Удалить комментарий

Огромное спасибо, статья очень выручила! 🙂

25 сентября 2016 г., 12:27 Удалить комментарий

15 декабря 2016 г., 22:31 Удалить комментарий

Иван Быков

Спасибо за статью, познавательно!
Поделюсь решением, которое нашел для себя — бесплатная утилита grepWin
Осуществляет поиск и замену текста по многим файлам одновременно. В запросах на поиск и замену можно использовать регулярные выражения.
Если файлов много ей просто цены нет — сложил в одну папочку (можно с подпапочками при желании)все файлы которые нужно править, запускаешь grepWin из контекстного меню этой папки, и меняй что душе угодно.
Я лично стабильно имею дело с файлами статистики, собираемыми командой sar на linux. Один раз написал нужные тебе регэкспы (с непривычки правда не сразу получится, рекомендую попрактиковаться на regex101.com) и любое количество файлов прогоняешь за секунды/пару минут (ну тут смотря по размеру файлов и сложности изменений, может и дольше занять)
Поделюсь своими регулярками:
приходят файлы с колонками цифр, колонки разделены пробелами. Чтобы открыть в экселе надо серию пробелов заменить на ;
Искать: s <2,>Заменить на: ;
Замена десятичной точки на запятую:
Искать (d).(d) Заменить на: $1,$2
Не забываем выбрать опцию RegExp search сверху от поля для поиска.

22 февраля 2017 г., 12:05 Удалить комментарий

Помог понять (потому что подробно изложил)! Спасибо.

7 мая 2017 г., 7:32 Удалить комментарий

В Notepad++ я записал макрос с такими действиями:
1. Найти все запятые , и заменить на точку с запятой ;
2. Найти все точки . и заменить их на запятые ,
3. Сохранить файл
Теперь любой "некирилличный" CSV преобразовывается одной командой и потом нормально открывается в Excel без изменений региональных настроек.

Изменить кодировку Excel по умолчанию на UTF-8?

Я использую различные инструменты для регулярной подготовки данных для Интернета. Один этап требует от меня открыть CSV в Excel, внести изменения и сохранить файл.

Есть ли способ заставить Excel принять кодировку UTF-8 и сохранить его файлы с этой кодировкой?

  1. В редакторе реестра перейдите в раздел HKEY_CURRENT_USER> Программное обеспечение> Microsoft> Office> [версия Excel здесь — вероятно, наибольшее число в этой папке]> Excel> Параметры
  2. щелкните правой кнопкой мыши на правой стороне и перейдите в New> DWORD
  3. назовите элемент DefaultCPG и сохраните
  4. щелкните правой кнопкой мыши DefaultCPG и выберите «Изменить».
  5. установить основание на десятичное
  6. введите код, показанный в мастере Excel (для UTF-8 это 65001)
  7. нажмите ОК.

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

Один из простых способов изменить кодировку Excel ANSI на UTF-8 — открыть файл CSV в блокноте и выбрать «Файл»> «Сохранить как». Теперь внизу вы увидите кодировку, установленную на ANSI, измените ее на UTF-8 и сохраните файл как новый файл, а затем все готово.

Вам нужно использовать опцию File > Import и начать с пустого документа и указать UTF-8

Читайте так же:
Кабинет без окон дизайн

enter image description here

но это далеко не оптимально, чтобы сделать эту настройку по умолчанию для всех файлов, в любом случае нет необходимости вращать файлы вокруг Google Drive или LibreOffice. Значения по умолчанию просто плохо выбраны, и неспособность изменить это раздражает.

Связанные

  1. Как установить кодировку символов при открытии Excel , но не находит возможность изменить значения по умолчанию, чтобы все файлы автоматически открывались с UTF-8 вместо формата Macintosh в OSX

  2. Как изменить параметр файла по умолчанию на UTF-8 в отличие от параметра файла Macintosh в Apple.SE.

Я решил подобную проблему раньше. Неудачно, но вы можете использовать LibreOffice , который по умолчанию является UTF-8.

Доступно расширение для Excel здесь для работы с файлами Unicode CSV, которые должны вам помочь.

Вот заметка разработчика Джеймона Мэтью:

Excel обрабатывает файлы .csv как текстовые файлы и заменяет все символы Юникода на «?» При обычном сохранении. Если вы хотите сохранить символы Unicode, вам нужно сохранить файл как «Unicode text (* .txt)», который является файлом с разделителями табуляции. Поскольку я не смог найти ни одного существующего решения для сохранения символов Unicode в формате CSV, я подумал, что попробую создать надстройку Excel, чтобы сделать именно это.

1

Это не лучшее решение, но это вариант: загрузите файл Excel на диск Google, откройте его с помощью вкладок Google и загрузите как файл CSV. Это сработало для меня.

Какая кодировка правильно открывает файлы CSV в Excel как на Mac, так и на Windows?

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

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

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

15 ответов

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

Решите это с помощью java (UTF-16LE с спецификацией):

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

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

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

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

Используется Excel 2011 (версия 14.4.2)

* В нижней части окна есть небольшое раскрывающееся меню.

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

В моем случае добавление преамбулы в файл решило мою проблему:

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

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

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

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

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

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

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

PS UTF-16LE, созданный iconv, имеет байты спецификации FF FE в начале.

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

Читайте так же:
Можно ли восстановить заблокированную сим карту

PPPS Точные версии программного обеспечения:
* Mac OS X 10.6.8
* Excel для Mac 2011 версии 14.1.3
* Windows Server 2003 с пакетом обновления 2
* Windows Excel 2002 v.10.2701.2625

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

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

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

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

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

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

  • Кодировка UTF-16LE (просто UTF-16 было недостаточно)
  • Спецификация » xFF xFE»
  • t (табуляция) как разделитель
  • Не забудьте также закодировать разделитель и CRLF 🙂
  • Используйте iconv вместо mb_convert_encoding

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

Загрузите скрипт с Github https://github.com/brablc/clit/blob/ master / csv2xlsx.py. Чтобы запустить его, вам необходимо установить модуль Python openpyxl для работы с файлами Excel: sudo easy_install openpyxl .

Вот решающий аргумент в пользу импорта CSV с кодировкой utf8 в Excel 2011 для Mac: Microsoft заявляет: «Excel для Mac в настоящее время не поддерживает UTF-8». Excel для Mac 2011 и UTF-8

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

UTF-16LE с BOM (метка порядка байтов), с разделением табуляцией

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

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

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

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

Обновление.

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

Кодировки Excel

Я обнаружил, что кодировка WINDOWS-1252 наименее расстраивает при работе с Excel. Поскольку это в основном собственный набор символов Microsoft, можно предположить, что он будет работать как на Mac, так и на версии MS-Excel для Windows. Обе версии, по крайней мере, включают соответствующий селектор «Источник файла» или «Кодировка файла», который правильно считывает данные.

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

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

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

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector