Когда вы открываете файл CSV или TXT в Microsoft Excel и вместо читаемого текста видите набор непонятных символов (например, Название вместо «Название»), проблема кроется в неверной кодировке. Чаще всего это происходит при импорте данных из внешних источников — баз данных, веб-сайтов или программ, использующих UTF-8, тогда как Excel по умолчанию пытается открыть файл в Windows-1251 (ANSI) или другой локальной кодировке. Решение зависит от версии программы (2010, 2016, 2019, 365) и формата исходного файла.
В 90% случаев кракозябры появляются из-за конфликта между кодировкой файла и настройками импорта в Excel. Например, если файл сохранён в UTF-8 без BOM (маркера порядка байтов), а Excel автоматически применяет ANSI, текст отображается некорректно. Другая распространённая причина — неверные региональные параметры системы, которые влияют на интерпретацию символов. Ниже разберём все способы исправления, включая ручную настройку импорта, конвертацию файлов и изменение системных параметров.
1. Правильный импорт CSV/TXT через «Мастер текстов»
Самый надёжный способ избежать проблем с кодировкой — использовать встроенный Мастер текстов (Text Import Wizard), доступный во всех версиях Excel. Он позволяет вручную указать кодировку на первом этапе импорта. Вот как это сделать:
- Откройте Excel и перейдите на вкладку
Данные→Получить данные→Из файла→Из текстового/CSV-файла(в Excel 2016+). В старых версиях (2010, 2013) выберитеИз текста. - Выберите проблемный файл и нажмите
Импорт. - В окне Мастера текстов на шаге 1 выберите
Файлы с разделителямии укажите кодировку:- 🔹 65001: Unicode (UTF-8) — для большинства современных файлов;
- 🔹 1251: Кириллица (Windows) — для файлов из старых российских программ;
- 🔹 866: DOS (OEM) — для данных из устаревших систем.
Далее, укажите разделитель (запятая, точка с запятой, табуляция) и завершите импорт.Если после импорта часть символов всё ещё отображается неверно, попробуйте повторить процедуру с другой кодировкой. Например, для файлов с кириллицей часто помогает смена UTF-8 на Windows-1251 и наоборот.
2. Конвертация файла в правильную кодировку
Если Excel упорно игнорирует настройки импорта, проще предварительно конвертировать файл в нужную кодировку с помощью внешних инструментов. Для этого подойдут:
- 📝 Блокнот (Notepad): откройте файл →
Файл→Сохранить как→ в полеКодировкавыберите UTF-8 или ANSI; - 📋 Notepad++:
Кодировки→Преобразовать в UTF-8 без BOM(оптимально для Excel); - 🖥️ Онлайн-конвертеры (например, encoding.tools) — загрузите файл, укажите исходную и целевую кодировку.
После конвертации откройте файл в Excel стандартным способом (двойной клик). Если кракозябры остались, вернитесь к Мастеру текстов (раздел 1) и укажите кодировку вручную.
3. Настройка региональных параметров Windows
Excel наследует настройки кодировки из региональных параметров системы. Если они сбиты, программа может неправильно интерпретировать символы даже при ручном импорте. Чтобы исправить это:
- Нажмите
Win + R, введитеintl.cplи нажмитеEnter. - Перейдите на вкладку
Дополнительно. - В разделе
Язык программы, не поддерживающей Юникодвыберите Русский (Россия). - Убедитесь, что в поле
Текущий язык для программ, не поддерживающих Юникодстоит Русский. - Нажмите
OKи перезагрузите компьютер.
Эти настройки влияют на то, как Excel обрабатывает текстовые файлы по умолчанию. После изменений попробуйте повторно открыть проблемный файл.
⚠️ Внимание: Изменение региональных параметров может повлиять на отображение текста в других программах. Если после настройки в Excel появились проблемы в 1С или базах данных, верните прежние параметры.
4. Исправление кодировки в открытом файле
Если файл уже открыт в Excel и содержит кракозябры, можно попытаться исправить кодировку без повторного импорта. Для этого:
- Выделите столбец с некорректным текстом.
- Скопируйте данные (
Ctrl + C). - Откройте Блокнот и вставьте текст (
Ctrl + V). - Сохраните файл с кодировкой UTF-8.
- Закройте Excel без сохранения, затем откройте сохранённый файл из Блокнота.
Альтернативный способ — использовать формулу для декодирования текста. Например, если кракозябры появились из-за двойной кодировки (UTF-8 → Windows-1251 → UTF-8), поможет функция =WEBSERVICE с декодером (подробнее в разделе 6).
Файл действительно сохранён в неверной кодировке?|Проблема проявляется только в Excel или и в других программах?|Попробовали ли вы открыть файл в Блокноте?|Сохранены ли резервные копии исходных данных?-->
5. Работа с кодировкой в Power Query
В Excel 2016 и новее для импорта данных рекомендуется использовать Power Query — инструмент, который гибко управляет кодировками. Чтобы импортировать файл с правильной кодировкой:
- Перейдите на вкладку
Данные→Получить данные→Из файла→Из текстового/CSV-файла. - Выберите файл и нажмите
Импорт. - В окне предварительного просмотра нажмите
Преобразовать данные. - В Power Query выберите столбец с кракозябрами → вкладка
Преобразование→Кодировка→ укажите Windows-1251 или UTF-8. - Нажмите
Закрыть и загрузить.
Power Query позволяет также очищать данные от лишних символов и заменять кодировки массово. Например, с его помощью можно автоматически конвертировать CP1251 в UTF-8 для всех новых файлов.
| Кодировка в файле | Что выбрать в Power Query | Типичный источник данных |
|---|---|---|
| UTF-8 | 65001: Unicode (UTF-8) | Веб-сайты, современные базы данных |
| Windows-1251 (ANSI) | 1251: Кириллица (Windows) | 1С, старые российские программы |
| DOS (OEM 866) | 866: Кириллица (DOS) | Устаревшие системы, терминалы |
| UTF-16 | 1200: Unicode | Файлы из macOS или специализированного ПО |
6. Автоматизация исправления кодировки с помощью VBA
Если вам регулярно приходится исправлять кодировку, можно написать макрос на VBA, который будет конвертировать текст автоматически. Пример кода для преобразования из Windows-1251 в UTF-8:
Sub FixEncoding()
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 VarType(cell.Value) = vbString Then
text = cell.Value
' Преобразование из Windows-1251 в UTF-8
cell.Value = StrConv(text, vbFromUnicode)
End If
Next cell
End Sub
Чтобы использовать этот макрос:
- Нажмите
Alt + F11, чтобы открыть редактор VBA. - Вставьте код в новый модуль (
Insert→Module). - Запустите макрос (
F5).
Для обратного преобразования (UTF-8 → Windows-1251) замените vbFromUnicode на vbUnicode. Обратите внимание, что макрос работает только с текстом — числовые данные и формулы остаются без изменений.
Расширенные настройки VBA для кодировки
Для сложных случаев (например, двойной кодировки) можно использовать библиотеку Microsoft ActiveX Data Objects (ADO) для чтения файлов в нужной кодировке. Пример кода доступен на Stack Overflow по тегу excel-vba encoding.
7. Проблемы с кодировкой при экспорте из Excel
Кракозябры могут появляться не только при импорте, но и при экспорте данных из Excel в CSV или TXT. Чтобы избежать этого:
- 📤 При сохранении в
CSVвыбирайте UTF-8 вручную:Файл→Сохранить как→ в полеТип файлаукажитеCSV UTF-8 (разделители — запятые) (*.csv). - 🔄 Если опция
CSV UTF-8отсутствует (в Excel 2010–2016), сохраните файл какТекстовый (Tab Delimited) (*.txt), затем откройте его в Блокноте и пересохраните с кодировкой UTF-8. - 🔧 Для автоматизации экспорта используйте Power Query или VBA (см. раздел 6).
Если экспортированный файл всё равно открывается с кракозябрами, проверьте программу, в которую вы его импортируете — возможно, она не поддерживает UTF-8 и требует ANSI.
⚠️ Внимание: В Excel 2010 и 2013 при сохранении в CSV кодировка по умолчанию — ANSI, что приводит к потере символов вне латиницы. Всегда проверяйте целевую кодировку перед экспортом.
Частые вопросы (FAQ)
Почему в Excel вместо русского текста отображаются знаки вопроса (?)?
Это признак того, что программа не может распознать символы из-за несовместимости кодировок. Чаще всего происходит при открытии файла в UTF-8 как ANSI. Решение: используйте Мастер текстов (раздел 1) и укажите кодировку 65001: Unicode (UTF-8).
Как узнать, в какой кодировке сохранён файл?
Откройте файл в Блокноте или Notepad++ — кодировка отображается в строке состояния. Альтернативно используйте онлайн-инструменты вроде encoding.tools, которые анализируют файл и предлагают варианты кодировок.
Можно ли исправить кодировку в Excel Online?
В веб-версии Excel (Excel Online) нет Мастера текстов, поэтому исправить кодировку напрямую нельзя. Решение: скачайте файл, откройте его в настольной версии Excel (или конвертируйте через Notepad++), затем загрузите обратно.
Почему после исправления кодировки часть символов всё равно неверная?
Это происходит из-за двойного преобразования (например, текст сначала был в UTF-8, затем ошибочно конвертирован в Windows-1251, а потом обратно). Попробуйте:
- Открыть исходный файл в HxD (hex-редактор) и проверить байты.
- Использовать специализированные инструменты вроде iconv (для Linux/macOS) или
📖 Читайте также