Как посмотреть кодировку файла csv
Перейти к содержимому

Как посмотреть кодировку файла csv

  • автор:

The problem

Shit. My users tell me they encounter some weird error when uploading their CSV files on my webapp. The word Nestlé gets transformed into Nestl� and it’s the same for every “weird” letters… Understand weird as non-native english : it’s a classic issue of encoding. Many blog will tell you how to convert encodings, using iconv-lite, but few will explain how to auto-detect the encoding, and then convert it, and all happening in the frontend.

How hard it is to find a solution

When I started searching for answers, none of them was satisfying for my case, and that’s the reason I wrote this blogpost. bash and python have some solution, but they are backend languages. Here is a list of Search terms I had to type on google, to make my way through this nightmare :

I will now go straight to the point.

The solution

The HTML code for uploading CSV looks like that :

which renders (depending on your CSS):
before upload

Step 1. Detect the encoding when we click Choose file

This detection has two important stages :

Opening the file

Using FileReader, we must use the readAsBinaryString() function, otherwise the default readAsText() parsing will ruin the detection.

Detecting the encoding

We will use the library jschardet (the js version of Chardet: The Universal Character Encoding Detector) to detect the encoding.

How to implement it :

We use jQuery for listening to events on the imput element.

We will use a trick to remember the encoding using jquery : we add an attribute called “encoding” to the input element, and we set its value to the encoding revealed by jschardet.

At this stage, if we inspect the element, we will see the encoding in the HTML code.
before upload

2. Parse with the proper encoding when submitting the file

When submitting the file, we can parse the CSV properly since we have the encoding. We will use the library PapaParse, a reference for this task. But you can use any other tool, that allow you to define the encoding.

Как проверить кодировку файла CSV

ИЛИ мне нужно использовать языки программирования, такие как C# или PHP, чтобы вывести его.

11 ответов

Вы можете просто открыть файл с помощью блокнота, а затем перейти к File -> Save As. Рядом с кнопкой Сохранить будет выпадающий список кодировки, и там будет выбрана текущая кодировка файла.

В системах Linux вы можете использовать команду file. Это даст правильную кодировку

Если вы используете Python, просто используйте функцию print(), чтобы проверить кодировку CSV-файла. Например:

Вывод примерно такой:

Вы также можете использовать библиотеку chardet python

Используйте chardet https://github.com/chardet/chardet (документация короткая и легко читаемая).

Установите python, затем pip install chardet, наконец, используйте команду командной строки.

Я тестировал под GB2312, и это довольно точно. (Убедитесь, что у вас есть хотя бы несколько символов, сэмпл с одним символом может легко потерпеть неудачу).

file не является надежным, как вы можете видеть.

введите описание изображения здесь

Или вы можете выполнить в консоли python или в Jupyter Notebook:

Вы увидите такую ​​информацию об объекте данных:

Как видите, он содержит информацию о кодировке.

Файлы CSV не имеют заголовков, указывающих кодировку.

Вы можете только догадываться, глядя на:

  • платформа / приложение, на котором был создан файл
  • байты в файле

В 2021 году смайлы широко используются, но многие инструменты импорта не могут их импортировать. Библиотека часто рекомендуется в ответах выше, но библиотека плохо обрабатывает смайлики.

Это дает UnicodeDecodeError при попытке прочитать файл с этой кодировкой.

Кодировка по умолчанию на Mac — UTF-8. Он явно включен здесь, но в этом даже не было необходимости . но в Windows это могло быть.

В file команда также подобрала это

Мой совет в 2021 году, если автоматическое определение пойдет не так: попробуйте UTF-8 прежде чем прибегать к chardet .

How to check encoding of a CSV file

OR do I need to make use of programming languages like C# or PHP to deduce it.

Vipul's user avatar

11 Answers 11

You can use Notepad++ to evaluate a file’s encoding without needing to write code. The evaluated encoding of the open file will display on the bottom bar, far right side. The encodings supported can be seen by going to Settings -> Preferences -> New Document/Default Directory and looking in the drop down.

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:

You can also use python chardet library

Md Kaish Ansari's user avatar

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.

enter image description here

Rick's user avatar

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:

  • the platform / application the file was created on
  • the bytes in the file

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

My advice in 2021, if the automatic detection goes wrong: try UTF-8 before resorting to chardet .

Как работать с файлами .CSV?

При экспорте данных из GetCourse есть возможность скачать файл в формате .CSV.

Этот же формат файла используется для импорта.

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

Рассмотрим, как работать с ним в:

Кликните по нему правой кнопкой мыши — «Открыть с помощью» — «Блокнот».

Далее нажимаем «Файл» — «Сохранить как».

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

При сохранении система предупредит нас, что такой файл уже есть. Хотим ли мы его заменить? Нажимаем «Да».

Файл закроется. Если нет, закройте его вручную.

Далее откройте файл в Excel.

Кодировка будет корректная и мы сможем проанализировать данные.

Создайте новый документ на Google Диске с типом «Таблицы».

Импортируйте файл в формате .CSV в новый документ на Google Диске.

В настройках импортируемого файла установите следующие данные:

— В поле «Импорт» выберите «Заменить таблицу»,

— В поле «Тип разделителя» выберите «Другой» и укажите значение «;»,

— В поле «Преобразование текста в числа, даты и формулы» выберите «Нет».

Чтобы скачать файл из Google Docs в формате .CSV, нажмите «Файл — Скачать как — CSV-файл (текущий лист)».

Если вы хотите сделать импорт пользователей и не знаете кодировку файла, то аналогично: откройте файл с помощью Блокнота и проверьте, а при необходимости измените кодировку.

Обратите внимание! При скачивании файла с Google Docs, кодировка может быть не UTF-8.

Рекомендуем проверять кодировку перед импортом.

Если OpenOffice у вас стоит по умолчанию, то просто откройте файл двойным кликом.

Если программ для открытия несколько, например, MS Excel и OpenOffice, то кликните по файлу правой кнопкой мыши — Открыть с помощью — OpenOffice Calc.

Далее выберите кодировку файла — UTF-8 и разделитель — точку с запятой.

Для сохранения файла в кодировке UTF-8 нажмите Файл — Сохранить как — укажите желаемое имя и сохраните файл.

Numbers для Mac

Если вы используете Mac OS, то при экспорте файла .CSV из вашего аккаунта Геткурс, выберите формат «Другие», чтобы получить файл в корректной кодировке. Такой файл будет корректно открываться в программе Numbers.

Создав новый файл в Numbers, экспортируйте его в формат CSV.

Перед тем, как сохранить файл, убедитесь, что выбрана кодировка UTF-8:

Здравствуйте, Елена.
Пожалуйста, обратитесь в техническую поддержку и опишите вашу задачу подробнее: https://getcourse.ru/contacts.

Если вы хотите добавить в урок файл для скачивания вы можете воспользоваться блоком «Файлы»: https://getcourse.ru/blog/273710#ltBlock108545864.

Напишите, пожалуйста, по данному вопросу нам в техподдержку https://getcourse.ru/contacts, приложив файл, который импортируется без значений в доп.полях.

Напишите, пожалуйста, нам в техподдержку https://getcourse.ru/contacts, приложив ссылку на файл, который импортируете, чтобы мы могли проверить.

Никита Кислов GetCourse Club. I ступень.удалить

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *