Кодировка Excel: какая используется по умолчанию и как её изменить при экспорте

Работаете с данными в Microsoft Excel и сталкиваетесь с проблемами при открытии файлов в других программах? Символы превращаются в нечитаемые иероглифы, а русские буквы отображаются как "ÐаÑÑÑеÑÐ"? Причина почти всегда кроется в неправильной кодировке при сохранении. Но какая кодировка в Excel используется по умолчанию, и почему она не всегда подходит для внешних систем?

В этой статье разберёмся, как Excel работает с кодировками при экспорте в CSV, TXT или другие форматы, почему возникают ошибки кодировки, и как их избегать. Вы узнаете, чем отличаются UTF-8, ANSI и Unicode, как сохранить файл так, чтобы он корректно открывался в Notepad++, или на веб-сайте, а также получите готовые решения для типичных проблем.

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

📊 Какую версию Excel вы используете?
Excel 2010 или старше
Excel 2013-2019
Excel 2021/365
Mac-версия Excel
Другая (указать в комментариях)

1. Какая кодировка в Excel по умолчанию?

Внутренне Microsoft Excel работает с текстом в кодировке Unicode (UTF-16 LE) — это позволяет хранить символы любого языка, включая кириллицу, иероглифы или специальные знаки. Однако при экспорте данных в форматы CSV или TXT программа использует другие кодировки, что и вызывает проблемы.

По умолчанию:

  • 📁 CSV-файлы сохраняются в ANSI (для русского языка — Windows-1251). Это устаревшая кодировка, которая не поддерживает некоторые символы (например, тире — или кавычки „“) и часто конфликтует с современными системами.
  • 📄 TXT-файлы также используют ANSI, если не указано иное.
  • 🌍 XML/HTML экспортируются в UTF-8 (более универсальный стандарт).

Проблема в том, что многие внешние программы (например, , MySQL, веб-скрипты) ожидают данные в UTF-8. При несовпадении кодировок русские буквы отображаются как кракозябры: ÐаÑÑÑеÑÐ вместо "Расчёт".

⚠️

Внимание: Если вы экспортируете данные для загрузки на сайт или в базу данных, всегда уточняйте требуемую кодировку у разработчиков. Например, WordPress и Joomla работают с UTF-8, а некоторые старые системы 1С могут требовать Windows-1251.

2. Как проверить текущую кодировку файла Excel

Сам файл Excel (.xlsx, .xls) не имеет "кодировки" в привычном смысле — он использует внутренний формат UTF-16 LE. Но если вам нужно узнать кодировку экспортированного файла (CSV/TXT), сделайте следующее:

Способы проверки:

  • 🔍 Откройте файл в Notepad++: кодировка отображается в строке состояния (внизу окна). Если видите ANSI as Windows-1251 — это и есть текущая кодировка.
  • 📝 В Блокноте Windows кодировка не показывается, но можно сохранить файл как UTF-8 и сравнить размер (UTF-8 обычно занимает меньше места для кириллицы).
  • 💻 Используйте команду в PowerShell:
    Get-Content -Path "путь_к_файлу.csv" -Encoding Byte -TotalCount 4

    Первые байты EF BB BF указывают на UTF-8 с BOM, а FF FE — на UTF-16 LE.

Если файл открывается кракозябрами, скорее всего, кодировка при сохранении была выбрана неверно. Например, вы сохранили в ANSI, а программа ожидает UTF-8.

3. Как сохранить файл Excel в UTF-8

К сожалению, Excel не предоставляет прямой опции сохранения в UTF-8 через стандартное меню. Но есть обходные пути:

Способ 1: Сохранение через "Текст Unicode" (UTF-16) с последующим конвертированием

  1. В Excel выберите Файл → Сохранить как.
  2. В поле "Тип файла" выберите Текст Unicode (*.txt).
  3. Откройте сохранённый файл в Notepad++ и конвертируйте в UTF-8 без BOM через меню Кодировки → Преобразовать в UTF-8 (без BOM).

Способ 2: Использование Power Query (Excel 2016+)

  • 📊 Загрузите данные в Power Query (Данные → Получить данные → Из таблицы/диапазона).
  • 🔄 В редакторе Power Query выберите Файл → Закрыть и загрузить в...Только создать подключение.
  • 💾 Сохраните как CSV, а затем откройте в Notepad++ и конвертируйте в UTF-8.

Способ 3: Макрос VBA для автоматического экспорта в UTF-8

Если вам часто нужно сохранять в UTF-8, создайте макрос:

Sub ExportToUTF8CSV()

Dim fs As Object, file As Object

Set fs = CreateObject("ADODB.Stream")

fs.Type = 2 ' Text

fs.Charset = "utf-8"

fs.Open

' Экспортируем активный лист

ActiveWorkbook.SaveAs "C:\temp\export.csv", xlCSV

' Чтение и пересохранение в UTF-8

fs.LoadFromFile "C:\temp\export.csv"

fs.SaveToFile "C:\temp\export_utf8.csv", 2 ' Перезаписать

fs.Close

End Sub

Убедитесь, что в данных нет специальных символов (например, ® или ™)|Проверьте наличие запятых в тексте (они могут сломать CSV)|Сохраните оригинальный файл Excel на случай ошибок|Используйте Notepad++ для финальной проверки кодировки-->

4. Таблица совместимости кодировок Excel с другими системами

Чтобы избежать ошибок, используйте эту таблицу при экспорте данных из Excel в другие программы:

Целевая система Рекомендуемая кодировка Формат файла Примечания
1С:Предприятие 8.3 Windows-1251 (ANSI) CSV или TXT Старые версии 1С не поддерживают UTF-8
MySQL / PostgreSQL UTF-8 CSV Убедитесь, что в базе также установлена UTF-8
WordPress / Joomla UTF-8 без BOM CSV или XML BOM может ломать импорт
Google Sheets UTF-8 CSV или XLSX При импорте выбирайте "Заменить текущий лист"
SAP Windows-1251 или UTF-16 TXT с разделителями Зависит от настроек модуля SAP

⚠️

Внимание: При экспорте в Google Таблицы избегайте использования UTF-8 с BOM — это может привести к ошибке "Недопустимый формат файла". Всегда выбирайте UTF-8 без BOM.

5. Типичные ошибки кодировки и как их исправить

Разберём самые частые проблемы и их решения:

Проблема 1: В CSV-файле вместо русских букв — знаки "ÐаÑÑÑеÑÐ"

  • 🔹 Причина: Файл сохранён в ANSI (Windows-1251), а программа ожидает UTF-8.
  • 🔧 Решение: Откройте файл в Notepad++ и конвертируйте в UTF-8 без BOM.

Проблема 2: Символы "�" вместо кириллицы в 1С

  • 🔹 Причина: Файл в UTF-8, а 1С настроена на Windows-1251.
  • 🔧 Решение: Пересохраните файл в ANSI или измените кодировку в настройках 1С (если поддерживается).

Проблема 3: Разделители в CSV не работают (данные в одной колонке)

  • 🔹 Причина: В данных есть запятые, а файл сохранён с разделителем-запятой.
  • 🔧 Решение: Используйте разделитель Tab или ; (точка с запятой) при сохранении.

Почему в Excel нет опции "Сохранить как UTF-8"?

Microsoft сознательно не добавляет эту опцию, поскольку внутренний формат Excel (UTF-16 LE) несовместим с UTF-8 напрямую. Однако в новых версиях Office 365 появилась возможность экспорта в UTF-8 через Power Query или дополнительные надстройки.

6. Как автоматизировать экспорт в UTF-8 (для продвинутых пользователей)

Если вам регулярно нужно сохранять данные в UTF-8, настройте один из этих методов:

Метод 1: Надстройка "UTF-8 CSV Exporter"

  • 📥 Скачайте бесплатную надстройку ExcelUtf8Csv.
  • 🔧 Установите через Файл → Параметры → Надстройки → Управление надстройками Excel.
  • 🚀 Теперь при сохранении будет опция UTF-8 CSV.

Метод 2: PowerShell-скрипт для пакетного конвертирования

Создайте файл convert_to_utf8.ps1 со следующим содержимым:

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

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

$content | Out-File -Encoding UTF8 -FilePath ($_.FullName + "_utf8.csv")

}

Этот скрипт автоматически конвертирует все CSV-файлы в папке в UTF-8.

Метод 3: Онлайн-конвертеры (для разовых задач)

Если данных мало, используйте сервисы:

  • 🌐 ConvertCSV — поддерживает UTF-8 и другие кодировки.
  • 🔄 Encoding.io — распознаёт и конвертирует кодировки автоматически.

7. Особенности кодировок в Excel для Mac

Пользователи Excel для Mac сталкиваются с дополнительными нюансами:

  • 🍎 По умолчанию Excel для Mac сохраняет CSV в кодировке UTF-8 (в отличие от Windows-версии).
  • 🔄 Однако при открытии файлов, созданных в Windows-Excel, может происходить автоматическое преобразование кодировки, что приводит к ошибкам.
  • ⚠️ Внимание: Файлы, сохранённые на Mac в UTF-8, могут некорректно открываться в под Windows, если там не настроена поддержка UTF-8.

Рекомендации для Mac-пользователей:

  1. Всегда уточняйте, в какой кодировке ожидает файл получатель (Windows или Mac).
  2. Для обмена с Windows-пользователями сохраняйте в Windows Comma Separated (.csv) (это forcing на ANSI).
  3. Используйте TextEdit для проверки кодировки (аналог Notepad++).

FAQ: Частые вопросы о кодировках в Excel

Можно ли сохранить XLSX в UTF-8?

Нет, формат .xlsx всегда использует внутреннюю кодировку UTF-16 LE. UTF-8 применим только к текстовым форматам (CSV, TXT).

Почему при открытии CSV в Excel русские буквы превращаются в кракозябры?

Это происходит, если файл был сохранён в UTF-8 с BOM, а Excel ожидает ANSI. Решение:

  1. Откройте файл через Данные → Из текста/CSV.
  2. В мастере импорта выберите кодировку 65001: Unicode (UTF-8).

Как сохранить CSV с разделителем "точка с запятой" в UTF-8?

Сделайте следующее:

  1. Сохраните файл как Текст Unicode (*.txt).
  2. Откройте в Notepad++ и замените запятые на точку с запятой (Find & Replace).
  3. Конвертируйте в UTF-8 без BOM.

Чем UTF-8 с BOM отличается от UTF-8 без BOM?

BOM (Byte Order Mark) — это невидимый маркер в начале файла, указывающий на UTF-8. Некоторые программы (например, PHP или MySQL) могут неправильно обрабатывать BOM, поэтому для веб и баз данных лучше использовать UTF-8 без BOM.

Можно ли изменить кодировку по умолчанию в Excel?

Нет, в стандартных настройках Excel нет такой опции. Но вы можете создать шаблон с макросом (см. раздел 6) или использовать надстройки.