Конвертер кодировок текста

CSV-файл открывается в Excel кракозябрами: как исправить

Исправить текст в конвертере ↓

CSV — простой текстовый файл без указания кодировки внутри. Открывая его двойным щелчком, Excel должен как-то угадать кодировку, и на русской Windows он по умолчанию считает, что файл записан в Windows-1251. Если файл выгружен с сайта, из облачного сервиса или скриптом, он почти наверняка в UTF-8 — и вместо «Ошибка» в ячейке появится Ошибка.

Способ 1: открыть файл через импорт

Файл при этом не меняется — меняется только то, как Excel его читает.

  1. Откройте пустую книгу и выберите «Данные» → «Из текстового/CSV-файла» (в старых версиях — «Данные» → «Из текста»).
  2. Укажите файл. В окне предпросмотра в поле «Источник файла» выберите «65001: Юникод (UTF-8)» — текст в предпросмотре станет читаемым.
  3. Проверьте разделитель (запятая или точка с запятой) и нажмите «Загрузить».

Способ 2: сохранить файл в UTF-8 с BOM

Если по файлу и дальше будут щёлкать двойным щелчком, лучше один раз добавить в него метку BOM — три байта в начале, по которым Excel узнаёт UTF-8.

  1. Нажмите «Загрузить файл» в конвертере ниже и выберите CSV.
  2. Убедитесь, что текст в поле читается нормально. Если там кракозябры, нажмите «Определить кодировку текста» — исправленный вариант появится в поле результата.
  3. В списке кодировок файла выберите «UTF-8 с BOM (для Excel)» и нажмите «Скачать файл в этой кодировке». Файл сохранится с тем же именем и расширением .csv.

Можно поступить и наоборот: скачать файл в Windows-1251. Excel на русской Windows откроет его без настроек, но символы, которых нет в Windows-1251 (эмодзи, многие иностранные буквы), заменятся на «?».

Если файл испорчен уже в Excel

Если CSV открыли в Excel кракозябрами и сохранили, кракозябры записаны в файл как обычный текст. Такой файл ещё можно спасти: откройте его в конвертере, нажмите «Определить кодировку текста» и скачайте результат. Если вместо букв в нём ромбы или знаки вопроса, исходные данные потеряны — выгрузите файл заново.

Как выгружать CSV для Excel из своих программ

  • Python: df.to_csv('file.csv', encoding='utf-8-sig') или open('file.csv', 'w', encoding='utf-8-sig') — суффикс -sig добавляет BOM.
  • PHP: выведите "\xEF\xBB\xBF" в начало файла перед первой строкой.
  • Для русских пользователей используйте разделитель «;» — в русской локали Excel ждёт именно точку с запятой, потому что запятая служит десятичным разделителем.

Частые вопросы

Почему один и тот же CSV у одного человека открывается нормально, а у другого — кракозябрами?
Excel угадывает кодировку по настройкам Windows. На компьютере с другим языком системы или с включённым параметром «Использовать Юникод (UTF-8) для поддержки языка во всем мире» результат будет разным. Метка BOM убирает эту неопределённость.
Все данные оказались в одной колонке. Это тоже кодировка?
Нет, это разделитель: Excel не узнал символ, которым разделены колонки. Откройте файл через «Данные» → «Из текстового/CSV-файла» и выберите разделитель вручную или замените запятые на точку с запятой при выгрузке.