как узнать в какой кодировке файл csv
Сменить кодировку файла на UTF-8 в Excel
Если при импорте контактов вы видите нечитаемые символы, как на скриншоте, это значит, что кодировка файла не подходит для импорта в Unisender. Файл нужно перекодировать в UTF-8. Далее мы расскажем, как это сделать в Excel.
Переходим на вкладку «Данные», выбираем «Получение внешних данных», а далее — «Из текста».
Открывается мастер импорта текста.
С текущей кодировкой содержимое файла нечитабельное.
В поле «Формат файла» перебираем кодировки, пока не найдём ту, в которой текст отображается правильно. Вариантов много, поэтому можно начать с форматов, которые начинаются со слова «Кириллица». Находим нужный формат, нажимаем «Далее».
Выбираем символы-разделители. В нашем случае это запятая.
Нажимаем «Далее» → «Готово» → «OK».
Так выглядит импортированный текст в Excel.
Теперь нажимаем «Файл» → «Сохранить как».
Вводим название файла, тип файла выбираем CSV, ниже нажимаем «Сервис» → «Параметры веб-документа».
Переходим на вкладку «Кодировка», выбираем «Юникод UTF-8» и нажимаем «OK».
Теперь импортируем его и видим, что текст отображается корректно.
Как проверить кодировку файла CSV?
Как узнать кодировку файла?
Откройте файл в Блокноте. Щелкните «Сохранить как …». В поле со списком «Кодировка:» вы увидите текущий формат файла. Откройте файл с помощью Notepad ++ и проверьте меню «Кодировка», вы можете проверить текущую кодировку и / или преобразовать в набор доступных кодировок.
Какая кодировка используется по умолчанию для CSV?
При экспорте в CSV используется кодировка по умолчанию Unicode (UTF-16le).
Как изменить кодировку файла CSV?
Шаги приведены ниже:
Как проверить кодировку в Excel?
Используйте формат C: путь_папки_книги имя_файла Excel. xlsx xl рабочие листы. Затем щелкните имя листа, и отобразится XML-код электронной таблицы. Обратите внимание, что тип кодировки находится вверху.
Какая кодировка у текстового файла?
Кодирование преобразует последовательность кодовых точек в последовательность байтов. Кодировка обычно используется при записи текста в файл. Чтобы прочитать его обратно, мы должны знать, как он был закодирован, и декодировать его обратно в память. Кодировка текста — это в основном формат текстовых файлов.
UTF-8 — это то же самое, что и Ascii?
Для символов, представленных 7-битными кодами символов ASCII, представление UTF-8 в точности эквивалентно ASCII, что обеспечивает прозрачную миграцию в оба конца. Другие символы Unicode представлены в UTF-8 последовательностями длиной до 6 байтов, хотя для большинства западноевропейских символов требуется только 2 байта3.
В чем разница между CSV и CSV UTF-8?
В диалоговом окне сохранения CSV UTF-8 (с разделителями-запятыми) появился новый формат, который отличается от значений, разделенных запятыми, которые также все еще присутствуют. … CSV для случайного наблюдателя кажется простым переносимым форматом, но его внешний вид обманчив. Если данные представляют собой чистый ASCII (байты 0-127), все будет в порядке.
Какая кодовая страница для файла CSV?
Вы можете указать кодовую страницу для плоских файлов при создании соединения с плоскими файлами. Кодовая страница 1252 используется сопоставлениями Latin1 в SQL Server, поэтому у вас не возникнет проблем, если вы укажете кодовую страницу 1252 (при условии, что файл был создан с этой кодовой страницей), а целевое сопоставление также использует кодовую страницу 1252.
Какая кодировка по умолчанию используется в Excel?
По памяти Excel использует машинно-зависимую кодировку ANSI. Таким образом, это будет Windows-1252 для установки EN-US, 1251 для русского языка и т. Д.
Как изменить кодировку файла?
Вы можете указать стандарт кодирования, который вы можете использовать для отображения (декодирования) текста.
В чем разница между CSV с разделителями-запятыми и CSV MS DOS?
По сути, CSV с разделителями-запятыми используется Windows, а CSV MS-DOS используется более старыми операционными системами на основе DOS, и вы редко сталкиваетесь с проблемами, за исключением обстоятельств, описанных выше. ExcelTips — это ваш источник экономичного обучения Microsoft Excel.
Как изменить кодировку файла Excel?
Щелкните Инструменты, затем выберите Параметры Интернета. Перейдите на вкладку Кодировка. В раскрывающемся списке Сохранить этот документ как: выберите Юникод (UTF-8). Щелкните ОК.
Как мне декодировать файл XLSX?
Метод 3. Расшифровать файл Excel без пароля с помощью ZIP
Какая кодировка Xlsx?
xlsx) текст и детали содержимого хранятся в xml. Путем переименования. xlsx в zip-файл, вы увидите файлы xml. Кодировка, указанная в этих xml, — UTF-8, что указывает на кодировку Рабочей книги.
How to check encoding of a CSV file
I have a CSV file and I wish to understand its encoding. Is there a menu option in Microsoft Excel that can help me detect it
OR do I need to make use of programming languages like C# or PHP to deduce it.
9 Answers 9
In Linux systems, you can use file command. It will give the correct encoding
If you use Python, just use a print() function to check the encoding of a csv file. For example:
The output is something like this:
Use chardet https://github.com/chardet/chardet (documentation is short and easy to read).
Install python, then pip install chardet, at last use the command line command.
I tested under GB2312 and it’s pretty accurate. (Make sure you have at least a few characters, sample with only 1 character may fail easily).
file is not reliable as you can see.
You can also use python chardet library
In Python, You can Try.
Or you can execute in python console or in Jupyter Notebook:
You will see information about the data object like this:
As you can see it contains encoding infotmation.
CSV files have no headers indicating the encoding.
You can only guess by looking at:
In 2021, emoticons are widely used, but many import tools fail to import them. The chardet library is often recommended in the answers above, but the lib does not handle emoticons well.
This gives UnicodeDecodeError while trying to read the file with this encoding.
The default encoding on Mac is UTF-8. It’s included explicitly here but that wasn’t even necessary. but on Windows it might be.
The file command also picked this up
Как правильно открыть CSV файл в Excel
CSV или Comma-Separated Values – это текстовый файл с табличными данными, в котором столбцы разделены специальным символом, чаще всего это запятая или точка с запятой. Формат CSV часто используется при экспорте данных с различных программ, устройств или онлайн сервисов. Для дальнейшей обработки данных из CSV обычно используется Excel или другой табличный процессор. В этом материале мы расскажем, как открыть CSV файл в Excel, а также как решить распространенные проблемы, которые могут при этом возникать.
Проверяем кодировку CSV файла
Для того чтобы успешно открыть CSV файл в Excel желательно предварительно проверить его кодировку, и, если это необходимо, выполнить преобразование в ANSI. Дело в том, что при открытии CSV файлов Excel по умолчанию использует кодировку ANSI. Поэтому, если ваш файл закодирован с использованием UTF-8 или какой-то другой кодировки, то при его открытии будут возникать проблемы с отображением кириллицы.
Если ваш CSV файл небольшого размера, то для проверки кодировки и преобразования можно использовать программу « Блокнот », которая идет в комплекте с Windows. Для этого откройте CSV файл в « Блокноте » и обратите внимание на нижний правый угол окна, там будет указана кодировка. Если в качестве кодировки используется «ANSI», то все нормально, можно переходить к открытию CSV файла в Excel. Если же используется другая кодировка (например, UTF-8), то файл нужно сначала преобразовать в ANSI.
воспользуйтесь меню « Файл – Сохранить как ». После этого в окне сохранения файла нужно указать кодировку « ANSI » и сохранить файл.
Если же CSV файл большой, то вы не сможете открыть его в обычном « Блокноте ». В этом случае придется установить текстовый редактор от стороннего разработчика. Например, вы можете проверить кодировку и выполнить преобразование при помощи AkelPad (скачать) или Notepad++ (скачать).
Открываем CSV файл в Excel
Если с кодировкой текста все нормально, то CSV файл можно открывать в Excel. Это можно сделать разными способами. Самый простой вариант, это просто кликнуть по CSV файлу правой кнопкой мышки и выбрать « Открыть с помощью – Excel ».
Также вы можете сначала открыть Excel, а потом воспользоваться меню « Файл – Открыть ».
В большинстве случаев, если у текста правильная кодировка, то это хорошо работает и Excel без проблем открывает CSV таким способом. При этом все данные правильно распределяются по соответствующим им ячейкам.
Но, в некоторых случаях подобный способ открытия CSV файлов может сработать не в полной мере. Например, текст загрузится в Excel, но данные не будут распределены по столбцам. Либо данные из CSV будут искажены стандартным форматом ячеек, который используется в таблице. Решение подобных проблем мы рассмотрим ниже.
Данные не распределились по столбцам
В некоторых случаях, после открытия CSV файла в Excel, автоматического распределения данных по столбцам не происходит. Чаще всего такая проблема возникает если в CSV используются какие-либо не стандартные разделители. Также подобная ситуация может возникать на старых версиях программы Excel.
Для решения этой проблемы нужно выделить столбец с данными (обычно это первый столбец таблицы), перейти на вкладку « Данные » и нажать на кнопку « Текст по столбцам ».
В результате появится « Мастер распределения текста по столбцам ». С его помощью можно вручную распределить данные из CSV по столбцам таблицы. На первом шаге просто выбираем вариант « С разделителями » и переходим далее.
На следующем шаге указываем разделитель, который используется в CSV файле, и переходим далее. Если используется какой-либо специфический разделитель, то здесь нужно выбрать вариант « Другой » и указать его вручную.
Завершающий шаг – выбор формата ячеек. Здесь можно указать, какой формат ячеек должен использоваться для каждого из столбцов. Данная опция будет полезной, если у вас сложные данные, которые искажаются после импорта из CSV. Более подробно об этом в конце.
После настройки формата ячеек нажмите на кнопку « Готово » для того, чтобы завершить работу мастера.
После завершения работы мастера все данные будут распределены по столбцам таблицы.
Excel искажает данные из CSV-файла
В некоторых случаях, при работе со сложными данными, Excel может искажать исходную информацию из CSV файла. Например, если в вашем CSV присутствуют большие числа, то они могут быть приведены к экспоненциальной форме, то есть число « 123123123123 » будет преобразовано в « 1,23123E+11 ». Также будут удалены лидирующие нули и значение « 000123123 » будет преобразовано в « 123123 ». Подобных преобразований в Excel огромное количество, поэтому после открытия CSV файла исходные данные могут быть изменены до не узнаваемости, при этом часть информации будет потеряна безвозвратно.
Чтобы избежать данной проблемы нужно следить, чтобы формат ячеек всегда соответствовал данным, которые в эти ячейки помещаются. Если ни один из стандартных форматов не подходит, то нужно использовать формат « Текстовый », в этом случае данные не будет изменяться вообще никак.
В старых версиях Excel для решения этой проблемы можно было использовать функцию « Получить данные из текстового/CSV-файла », которая доступна на вкладке « Данные ». После использования данной функции запускался « Мастер распределения текста по столбцам » в котором можно было задать формат ячеек для каждого из столбцов. Но, к сожалению, в последних версиях Excel это уже не работает.
Сейчас эту проблему можно решить, если изменить расширение CSV-файла на TXT и после этого открыть данный TXT-файл в Excel с помощью меню « Файл – Открыть ». В этом случае открывается нужный мастер и позволяет нам правильно импортировать данные.
На первом шаге здесь нужно выбрать вариант « С разделителями » и указать кодировку текста.
Дальше выбираем символ-разделитель, который отделяет данные в разных столбцах.
И выбираем подходящий формат ячеек для каждого из столбцов. Для того чтобы данные вообще не изменялись выбираем – « Текстовый ».
Для завершения работы с мастером нажмите на кнопку « Готово » и данные с CSV загрузятся в новый документ Excel.
Язвы и грабли CSV и Excel: проблемы и решения
CSV является стандартом де-факто для связи между собой разнородных систем, для передачи и обработки объемных данных с «жесткой», табличной структурой. Во многих скриптовых языках программирования есть встроенные средства разбора и генерации, он хорошо понятен как программистам, так и рядовым пользователям, а проблемы с самими данными в нем хорошо обнаруживаются, как говорится, на глаз.
История этого формата насчитывает не менее 30 лет. Но даже сейчас, в эпоху повального использования XML, для выгрузки и загрузки больших объемов данных по-прежнему используют CSV. И, несмотря на то, что сам формат довольно неплохо описан в RFC, каждый его понимает по-своему.
Начнем с того, что форматом CSV на самом деле называют три разных текстовых формата, отличающихся символами-разделителями: собственно сам CSV (comma-separated values — значения, разделенные запятыми), TSV (tab-separated values — значения, разделенные табуляциями) и SCSV (semicolon separated values — значения, разделенные точкой с запятой). В жизни все три могут называться одним CSV, символ-разделитель в лучшем случае выбирается при экспорте или импорте, а чаще его просто «зашивают» внутрь кода. Это создает массу проблем в попытке разобраться.
Как иллюстрацию возьмем казалось бы тривиальную задачу: импортировать в Microsoft Outlook данные из таблицы в Microsoft Excel.
В Microsoft Excel есть средства экспорта в CSV, а в Microsoft Outlook — соответствующие средства импорта. Что могло быть проще — сделал файлик, «скормил» почтовой программе и — дело сделано? Как бы не так.
Создадим в Excel тестовую табличку:
… и попробуем экспортировать ее в три текстовых формата:
«Текст Unicode» | Кодировка — UTF-16, разделители — табуляция, переводы строк — 0×0D, 0×0A, объем файла — 222 байт |
«CSV (разделители — запятые)» | Кодировка — Windows-1251, разделители — точка с запятой (не запятая!), во второй строке значение телефонов не взято в кавычки, несмотря на запятую, зато взято в кавычки значение «01;02», что правильно. Переводы строк — 0×0D, 0×0A. Объем файла — 110 байт |
«Текстовые файлы (с разделителями табуляции)» | Кодировка — Windows-1251, разделители — табуляция, переводы строк — 0×0D, 0×0A. Значение «01;02» помещено в кавычки (без особой нужды). Объем файла — 110 байт |
Какой вывод мы делаем из этого. То, что здесь Microsoft называет «CSV (разделители — запятые)», на самом деле является форматом с разделителями «точка с запятой». Формат у Microsoft — строго Windows-1251. Поэтому, если у вас в Excel есть Unicode-символы, они на выходе в CSV отобразятся в вопросительные знаки. Также то, что переводами строк является всегда пара символов, то, что Microsoft тупо берет в кавычки все, где видит точку с запятой. Также то, что если у вас нет Unicode-символов вообще, то можно сэкономить на объеме файла. Также то, что Unicode поддерживается только UTF-16, а не UTF-8, что было бы сильно логичнее.
«Значения, разделенные табуляцией(Windows)» | Скармливаем аутлуку файл tsv, с разделенными табуляцией значениями и. — чтобы вы думали. Outlook склеивает поля и табуляцию не замечает. Заменяем в файле табуляцию на запятые и, как видим, поля уже разбирает, молодец. |
«Значения, разделенные запятыми (Windows)» | А вот аутлук как раз понимает все верно. Comma — это запятая. Поэтому ожидает в качестве разделителя запятую. А у нас после экселя — точка с запятой. В итоге аутлук распознает все неверно. |
Два майкрософтовских продукта не понимают друг друга, у них напрочь отсутствует возможность передать через текстовый файл структурированные данные. Для того, чтобы все заработало, требуются «пляски с бубном» программиста.
Мы помним, что Microsoft Excel умеет работать с текстовыми файлами, импортировать данные из CSV, но в версии 2007 он делает это очень странно. Например, если просто открыть файл через меню, то он откроется без какого-либо распознавания формата, просто как текстовый файл, целиком помещенный в первую колонку. В случае, если сделать дабл-клик на CSV, Excel получает другую команду и импортирует CSV как надо, не задавая лишних вопросов. Третий вариант — вставка файла на текущий лист. В этом интерфейсе можно настраивать разделители, сразу же смотреть, что получилось. Но одно но: работает это плохо. Например, Excel при этом не понимает закавыченных переводов строк внутри полей.
Более того, одна и та же функция сохранения в CSV, вызванная через интерфейс и через макрос, работает по-разному. Вариант с макросом не смотрит в региональные настройки вообще.
Стандарта CSV как такового, к сожалению, нет, но, между тем, существует т.н. memo. Это RFC 4180 года, в котором описано все довольно толково. За неимением ничего большего, правильно придерживаться хотя бы RFC. Но для совместимости с Excel следует учесть его собенности.
Вот краткая выжимка рекомендаций RFC 4180 и мои комментарии в квадратных скобках:
Вот в нотации ABNF описание формата:
Также при реализации формата нужно помнить, что поскольку здесь нет указателей на число и тип колонок, поскольку нет требования обязательно размещать заголовок, здесь есть условности, о которых необходимо не забывать:
Пример валидного CSV, который можно использовать для тестов:
точно такой же SCSV:
Второй файлик, который по логике SCSV, экселом воспринимается и выходит вот что:
С приведением типов сработало, но зато теперь не обрабатываются нормально переводы строк и осталась проблема с ведущими нулями, кавычками и лишними пробелами. Да и пользователям так открывать CSV крайне неудобно.
Есть эффективный способ, как заставить Excel не приводить типы, когда это нам не нужно. Но это будет CSV «специально для Excel». Делается это помещением знака «=» перед кавычками везде, где потенциально может возникнуть проблема с типами. Заодно убираем лишние пробелы.
И вот что случаеся, если мы открываем этот файлик в экселе:
Чтобы построить хороший и удобный импортер CSV, необходимо помнить о следующем: