Файл CSV открывается в Excel в неверной кодировке
При выгрузке данных из Jumper, в файл, в формате CSV данные всегда сохраняются в кодировке UTF-8 (без BOM).
Microsoft Excel не умеет определять кодировку файла CSV и всегда открывает файл в кодировке ANSI (win-1251), поэтому после открытия текст не читабелен.
Как вариант решения, Вы можете переименовать расширение файла .csv в . txt, затем открыть его в Microsoft Excel, Вам будет предложено выбрать кодировку файла, выберите UTF-8.
Так же Вы можете файл в формате CSV открыть любым текстовым редактором, например в Notepad++, ведь CSV это обычный текстовый файл.
Светлана Сибиряк
Копирайтер ElbuzGroup
Сохрани ссылку на эту статью
FAQ: Как проверить кодировку в текстовом файле?
Программный комплекс SocialKit корректно работает с кириллицей в текстовых файлах, кодировка которых соответствует стандарту Windows-1251 (кратко может быть записано как CP1251 или ANSI). В этой связи в задачах, поддерживающих указание внешнего файла с перечнем комментариев, сообщений, описаний и прочей информации, которая может содержать кириллицу, нужно указывать текстовые файлы, где русский текст задан в кодировке по стандарту Windows-1251 или же просто ANSI, или CP1251 — всё это, по сути, одно и то же.
Учитывая, что многие инструменты по работе с текстом не отображают, в какой именно кодировке задан текст в текстовом файле и/или не поддерживают преобразование кодировок, то у новичков часто возникает вопрос о том, как именно привести кодировку текстового файла с русским текстом к понятному для SocialKit формату CP1251.
Следует сразу отметить, что большинство текстовых редакторов для ОС Windows (например, встроенный Блокнот и Wordpad) по умолчанию создают текстовые файлы именно с кодировкой по стандарту Windows-1251. Однако, эта кодировка по умолчанию может быть изменена в следствие тех или иных действий.
Если вы не уверены в том, в какой именно кодировке задан текст, то проще всего этот текст пересохранить через стандартный Блокнот Windows. При пересохранении Блокнот также покажет, в каком формате текст сейчас.
Опишем эту простую процедуру по шагам.
1. Открыть искомый текстовый файл в Блокноте Windows и выбрать пункт меню «Файл» -> «Сохранить как. «.
Пример текстового файла, в котором русский текст задан в формате UTF, но это не очевидно при открытии.
2. В открывшемся диалоговом окне вы сразу видите, в какой кодировке был сохранён текст в текстовом файле.
Диалоговое окно пересохранения текстового файла, в котором можно сразу изменить кодировку.
Как видно, в примере текст в текстовом файле был ранее сохранён в кодировке UTF-8. Для изменения кодировке достаточно выбрать в выпадающем списке кодировку ANSI и нажать кнопку «Сохранить«.
При этом зрительно для вас ничего не изменится, но многое изменится для программы и алгоритмов, занимающихся обработкой текста в процессе отправки. Корректно Instagram’у будет отправлен только ANSI-текст.
Как определить, в какой кодировке заливать данные в csv (открытие через excel)
Данные с файла считываются нормально, как и должны быть. Как я понял проблема в кодировке. Как узнать в какой кодировке открывает эти данные excel? Пробовал напрямую перекодировать phrase (посредством str.encode(‘utf-8’)) — все равно заливает мусор. Может быть, я что-то не так делаю?
Отслеживать
47.5k 17 17 золотых знаков 56 56 серебряных знаков 99 99 бронзовых знаков
задан 17 ноя 2016 в 19:09
327 1 1 золотой знак 4 4 серебряных знака 13 13 бронзовых знаков
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
"Data" -> "Get External Data" -> "Import Text File"
Поэтому сохраняйте данные в любой кодировке по вашему выбору. utf-8 поддерживает произвольные Unicode символы, поэтому если у вас нет особых предпочтений, то можно её по умолчанию использовать.
Кодировка результата определяется с помощью encoding параметра для open() :
#!/usr/bin/env python3 import csv with open('pr.csv', 'w', encoding='utf-8', newline='') as file: writer = csv.DictWriter(file, fieldnames=["phrase", "num", "link"]) writer.writeheader() writer.writerows(parsing_data)
Обратите внимание: writerows() , а не writerow() . Также следует newline=» использовать с файлами, передаваемыми в csv модуль (чтобы окончания строк не портились).
Отслеживать
ответ дан 18 ноя 2016 в 21:16
52.2k 11 11 золотых знаков 108 108 серебряных знаков 311 311 бронзовых знаков
Пробовал, но открывая файл в exel — выводит неправильную кодировку. Открывая файл в encoding=’cp1251′ все работает.
20 ноя 2016 в 22:41
@Тимур смысл ответа, что вы вы а не excel задаёте кодировку. То есть данные лежат на диске в какой-то конкретной кодировке (зависит кто эти данные писал—это может быть что угодно). Сам csv файл не содержит указания кодировки явного, поэтому вы должны по другим каналам узнать (спросите того кто пишет эти файлы). При загрузке файла в excel вы явно указываете эту кодировку. Если вы знаете, что файл сохранен в cp1251, тогда вы Excel и говорите, что файл сохранён именно в этой кодировке. Хотя если не указать, то на русской Винде он может эту кодировку по умолчанию использовать—точно не знаю.
Как посмотреть кодировку файла csv
07.09.2023 15:53
Комментарий
дай вам бох здоровья))
07.02.2023 14:41
Комментарий
Не понял, как импортировать из xls.
21.10.2022 11:20
Комментарий
Спасибо, этот метод сработал!
11.07.2022 14:39
Комментарий
ладно, беру слова обратно, если выбрать добыть данные из файла CSV? то они откроются, но этот ответ в вашей статье все таки больше похож на разбивку из текста
Ответ разработчика:
Благодарим за обратную связь.