Как в Excel изменить кодировку текста: от кракозябр до корректного отображения

Вы открыли CSV-файл в Excel, а вместо читаемого текста видите иероглифы или знаки вопроса? Или после экспорта данных из 1С в Excel русские буквы превратились в нечитаемые символы? Проблема кроется в несовпадении кодировок — набора правил, по которым текст преобразуется в двоичный код. Excel по умолчанию использует Windows-1252 (ANSI для западноевропейских языков), тогда как многие российские программы работают с Windows-1251 или UTF-8.

В этой статье вы найдёте 5 проверенных способов исправить кодировку текста в Excel — от ручного преобразования до автоматизации через Power Query. Мы разберём, как определить текущую кодировку файла, почему возникают ошибки при импорте, и как сохранить документ так, чтобы его корректно открыли коллеги на Mac или в Linux. Особое внимание уделим нюансам работы с кириллицей и специальными символами (например, знакам валюты или математическим обозначениям).

Почему Excel неправильно отображает текст: причины и признаки

Кракозябры в Excel — это не баг программы, а следствие конфликта кодировок между источником данных и редактором. Распространённые сценарии:

  • 📥 Импорт CSV/ТXT из внешних систем (1С, базы данных, веб-скрапинг) с кодировкой UTF-8, тогда как Excel ожидает ANSI.
  • 💾 Экспорт из Excel в формате CSV с неверной кодировкой — файл становится нечитаемым в других программах.
  • 🔄 Копирование текста из веб-страниц или PDF, где используется UTF-8, в ячейки Excel с Windows-1251.
  • 🖥️ Работа на разных ОС: файл, сохранённый на Mac (UTF-8), открывают на Windows (Windows-1251).

Признаки проблемы: Вместо кириллицы — иероглифы (например, Ðайл вместо «Файл»), знаки вопроса (??????) или квадратики (□). Спецсимволы (€, ®, °) отображаются как € или °. Текст «съезжает»: буквы слипаются или разрываются пробелами.

📊 С какой кодировкой вы чаще сталкиваетесь в работе?
UTF-8
Windows-1251
ANSI (Windows-1252)
Mac OS Roman
Не знаю

Важно понимать, что Excel не сохраняет информацию о кодировке внутри файла (в отличие от Notepad++ или Sublime Text). Поэтому при открытии CSV программа «угадывает» кодировку по первым байтам, и часто ошибается. Например, файл в UTF-8 без BOM (метки порядка байтов) Excel интерпретирует как ANSI, что и приводит к кракозябрам.

Способ 1: Исправить кодировку при импорте CSV/ТXT

Самый надёжный метод — импортировать данные через мастер текстов, явно указав кодировку. Вот пошаговая инструкция:

  1. Откройте пустую книгу Excel.
  2. Перейдите на вкладку ДанныеПолучить данныеИз файлаИз текста/CSV.
  3. Выберите проблемный файл и нажмите Импорт.
  4. В окне предварительного просмотра кликните Преобразовать данные.
  5. В Power Query нажмите ФайлПараметры и настройкиПараметры.
  6. В разделе Региональные параметры выберите 1251 : Кириллица (Windows) или 65001 : Unicode (UTF-8).
  7. Нажмите Закрыть и загрузить.

Если текст всё ещё отображается некорректно, попробуйте другие кодировки вручную: Windows-1250 (центральноевропейская), ISO-8859-5 (кириллица для Unix), KOI8-R (устаревший стандарт для русского языка).

Выбрать правильную кодировку (UTF-8 для современных систем, Windows-1251 для старых)

Проверить разделитель (запятая, точка с запятой или табуляция)

Указать формат даты/времени, если есть такие столбцы

Отключить автоматическое определение типов данных-->

⚠️ Внимание: При импорте через Файл → Открыть Excel игнорирует кодировку и использует системные настройки по умолчанию. Всегда используйте Данные → Получить данные для контроля над процессом.

Способ 2: Конвертация кодировки через Notepad++

Если Excel упорно не распознаёт текст, воспользуйтесь внешним редактором — например, Notepad++ (бесплатный). Этот метод подходит для файлов размером до 100 МБ.

Инструкция:

  1. Откройте файл в Notepad++.
  2. Перейдите в меню КодировкиПреобразовать в ANSI (если текст читаемый, но с ошибками) или Преобразовать в UTF-8 без BOM (если иероглифы).
  3. Сохраните файл (Ctrl + S).
  4. Откройте его в Excel через Данные → Получить данные (как в Способе 1).

Альтернативные редакторы:

  • 🖥️ Sublime Text: меню File → Reopen with Encoding.
  • 📝 VS Code: правый нижний угол (текущая кодировка) → Reopen with Encoding.
  • 🍎 Для Mac: TextWrangler или BBEdit.

Кодировка Признаки в Notepad++ Когда использовать
UTF-8 Текст читаемый, но в Excel кракозябры Для современных веб-данных, JSON, XML
UTF-8 с BOM В начале файла невидимые символы EF BB BF Для совместимости со старыми версиями Excel
Windows-1251 Текст читаемый в Notepad++, но не в Excel Для файлов из 1С, бухгалтерских программ
ANSI (Windows-1252) Латинские буквы корректны, кириллица — нет Для западноевропейских данных
⚠️ Внимание: При сохранении в UTF-8 с BOM некоторые программы (например, Python или MySQL) могут некорректно считывать первые символы файла. Используйте UTF-8 без BOM для технических задач.

Способ 3: VBA-скрипт для массового исправления кодировки

Если вам регулярно приходится исправлять кодировку в десятках файлов, автоматизируйте процесс с помощью макроса VBA. Ниже скрипт для конвертации текста из Windows-1251 в UTF-8:

Sub ConvertEncoding()

Dim ws As Worksheet

Dim rng As Range

Dim cell As Range

Dim text As String

' Выбираем активный лист

Set ws = ActiveSheet

Set rng = ws.UsedRange

' Проходим по всем ячейкам

For Each cell In rng

If cell.Value <> "" Then

' Конвертируем из Windows-1251 в UTF-8

text = StrConv(cell.Value, vbFromUnicode)

text = StrConv(text, vbUnicode)

cell.Value = text

End If

Next cell

MsgBox "Кодировка исправлена!", vbInformation

End Sub

Как использовать:

  1. Нажмите Alt + F11, чтобы открыть редактор VBA.
  2. Вставьте код в новый модуль (Insert → Module).
  3. Запустите макрос (F5).

Для обратной конвертации (из UTF-8 в Windows-1251) замените строки в скрипте:

text = StrConv(cell.Value, vbUnicode)

text = StrConv(text, vbFromUnicode)

Способ 4: Онлайн-конвертеры кодировок

Если у вас нет доступа к Notepad++ или Excel, воспользуйтесь онлайн-сервисами. Они подходят для разовых задач с файлами до 50 МБ. Популярные инструменты:

  • 🌐 Encoding.io: поддерживает 20+ кодировок, предварительный просмотр.
  • 🔄 RapidTables: конвертация между ASCII, Hex, UTF-8.
  • 📄 CodeBeautify: исправление CSV с выбором разделителей.

Как работать с онлайн-конвертерами:

  1. Загрузите файл или вставьте текст в поле.
  2. Выберите текущую кодировку (например, Windows-1251).
  3. Укажите целевую кодировку (например, UTF-8).
  4. Скачайте результат и откройте в Excel.

⚠️ Внимание: Не загружайте в онлайн-сервисы конфиденциальные данные (персональную информацию, финансовые отчёты). Для чувствительных файлов используйте офлайн-методы (Notepad++ или VBA).

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

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

  1. В Excel нажмите Файл → Сохранить как.
  2. Выберите формат CSV (разделители — запятые) (*.csv).
  3. Нажмите Сервис → Веб-параметры (в старых версиях Excel) или используйте Power Query (в новых).
  4. В разделе Кодировка выберите Unicode (UTF-8).

Для Excel 2016 и новее:

  • 📁 Используйте Файл → Экспорт → Изменить тип файлаCSV UTF-8 (разделители — запятые) (*.csv).
  • 🔧 В Power Query при экспорте укажите кодировку вручную (кнопка Параметры рядом с Закрыть и загрузить).

Почему Excel не сохраняет UTF-8 по умолчанию?

По историческим причинам Microsoft Excel до версии 2016 использовал ANSI (Windows-1252) как кодировку по умолчанию для CSV. Это связано с ограничениями старых версий Windows и необходимостью совместимости с унаследованными системами. Только в 2018 году в Excel появилась опция сохранения в UTF-8, но она скрыта в меню "Экспорт".

Частые ошибки и как их избежать

Ошибка 1: «Файл повреждён» при открытии CSV Причина: Excel ожидает ANSI, а файл сохранён в UTF-8 с BOM (или наоборот). Решение: Откройте файл через Данные → Получить данные и укажите кодировку вручную.

Ошибка 2: Символы «???» вместо кириллицы Причина: Шрифт в Excel не поддерживает кириллицу (например, Arial Unicode MS заменён на Calibri). Решение: Выделите ячейки → вкладка Главная → выберите шрифт Times New Roman или Arial.

Ошибка 3: Текст «съезжает» по столбцам Причина: Неверный разделитель (например, в файле используется ;, а Excel ожидает ,). Решение: При импорте в Power Query укажите правильный разделитель в настройках столбцов.

FAQ: Ответы на частые вопросы

Можно ли изменить кодировку прямо в Excel без внешних программ?

Нет, Excel не имеет встроенного инструмента для изменения кодировки уже открытого текста. Вы можете:

  • Исправить кодировку при импорте (Способ 1).
  • Сохранить файл в другой кодировке при экспорте (Способ 5).
  • Использовать VBA для массовой обработки (Способ 3).

Для прямого преобразования текста в ячейках потребуются внешние инструменты (Notepad++, Python-скрипты).

Почему после конвертации в UTF-8 в Excel появляются символы â, Â, Ä?

Это признак двойной конвертации: текст уже был в UTF-8, но его повторно интерпретировали как ANSI. Решение:

  1. Откройте файл в Notepad++.
  2. Убедитесь, что текущая кодировка — UTF-8 без BOM.
  3. Скопируйте текст в новый файл и сохраните его в ANSI.
  4. Откройте в Excel через Данные → Получить данные.
Как узнать текущую кодировку файла CSV?

Способы определения кодировки:

  • 📝 Notepad++: кодировка отображается в строке состояния (правый нижний угол).
  • 🖥️ Командная строка Windows:
    chcp 65001 & type "файл.csv" | more

    Если текст читаемый — кодировка UTF-8.

  • 🐧 Terminal (Mac/Linux):
    file -i файл.csv

    Вывод будет типа charset=utf-8 или charset=iso-8859-5.

Можно ли автоматизировать исправление кодировки для папки с файлами?

Да, с помощью PowerShell (Windows) или Bash (Mac/Linux). Пример скрипта для PowerShell (конвертация всех CSV в папке из Windows-1251 в UTF-8):

Get-ChildItem "C:\путь\к\папке\*.csv" | ForEach-Object {

$content = Get-Content $_.FullName -Encoding Default

$content | Out-File $_.FullName -Encoding UTF8 -Force

}

Для Linux/Mac используйте iconv:

for file in *.csv; do

iconv -f WINDOWS-1251 -t UTF-8 "$file" > "utf8_$file"

done

Почему в Excel 2019 нет опции сохранения в UTF-8?

В Excel 2019 опция сохранения в UTF-8 скрыта. Чтобы её включить:

  1. Перейдите в Файл → Параметры → Дополнительно.
  2. Прокрутите до раздела Общие.
  3. Поставьте галочку Спрашивать о кодировке при открытии файлов.
  4. Теперь при сохранении в CSV появится опция UTF-8.

В Excel 365 опция доступна по умолчанию в меню Файл → Экспорт → Изменить тип файла.