Если русский текст в CSV превратился в нечитаемые символы, сначала нужно найти этап, на котором возникло искажение: исходный файл, импорт в Excel, повторный импорт в редактор этикеток или уже печать. Типичный признак ошибки кодировки состоит в том, что неправильные последовательности символов видны уже при чтении CSV. Но похожая проблема может возникнуть и из-за отсутствующих глифов в конкретной программе, поэтому результат сравнивают в среде, которая точно поддерживает кириллицу.
Возьмем вымышленный пример. В исходной выгрузке должны находиться три записи: ID001 с названием «Ёлка», ID002 с названием «Щётка», ID003 с названием «Съёмник». Исходный CSV сохраняем нетронутым и все проверки выполняем на копии.
UTF-8 не является универсальной кодировкой для любого CSV. Если система-источник экспортировала файл в UTF-8, читать его нужно как UTF-8. Если документация или настройки экспорта указывают Windows-1251, при импорте выбирают именно ее.
Сначала проверьте настройки выгрузки или справку системы, которая создала файл. Если точных сведений нет, используйте известные контрольные строки и сравнивайте результат импорта с первоисточником.
В нашем примере хорошими контрольными словами служат «Ёлка», «Щётка» и «Съёмник». Если они уже в предварительном просмотре превращаются в набор странных символов, не продолжайте загрузку с текущими параметрами.
Не сохраняйте поврежденный результат поверх исходного CSV. Перекодирование уже испорченного текста не гарантирует восстановления первоначальных букв.
В Excel для Windows используйте Данные → Получить данные → Из файла → Из текста/CSV. В окне импорта можно проверить данные до загрузки на лист.
Обратите внимание на Происхождение файла / File Origin, разделитель и структуру столбцов. Для подтвержденного UTF-8 выбирают UTF-8, кодовую страницу 65001. Windows-1251 используют только тогда, когда исходный файл действительно записан в этой кодировке.
При изменении File Origin проверяйте не просто общий вид текста, а конкретные значения. Результат должен точно содержать «Ёлка», «Щётка» и «Съёмник».
Отдельно проверьте разделитель. Правильная кириллица еще не означает, что CSV разобран правильно: название, ID и другие поля должны попасть в свои столбцы.
Если нужно дополнительно проверить типы, выберите Преобразовать данные и откройте Power Query.
Столбец с ID сохраняйте как текст, если именно так определены исходные идентификаторы. Для примера должны остаться ID001, ID002 и ID003. Проверьте автоматическое определение типов до загрузки, но не переводите без необходимости в текст остальные поля с другой логикой, например даты или количества.
Перед массовой печатью проверьте структуру файла и типы полей при подготовке Excel и CSV к печати этикеток, а для этого файла отдельно убедитесь, что кириллица корректно сохраняется и передаётся в редактор.
Это важная граница. Если Excel правильно прочитал рабочую копию CSV, исходный файл на диске от этого не изменился. Нельзя после проверки в Excel передать редактору этикеток тот же старый CSV со словами, что его «исправили в Excel».
Дальше есть два разных маршрута.
Первый вариант: редактор этикеток сам умеет импортировать исходный CSV с явным выбором кодировки. Тогда откройте исходный файл в нем с той кодировкой, которая была подтверждена для выгрузки, и снова проверьте контрольные строки.
Второй вариант: из уже проверенных данных Excel создайте новый CSV в кодировке, которую поддерживает целевой редактор. Конкретные команды и доступные варианты экспорта зависят от версии Excel и программы назначения, поэтому нельзя автоматически выбирать UTF-8 для любого процесса.
Новый файл сохраните под отдельным именем. Затем откройте именно его через контролируемый импорт в целевом редакторе и заново проверьте кодировку, разделитель, поля и три контрольные строки.
Если редактор поддерживает CSV UTF-8, этот формат можно использовать. Если нет, выберите поддерживаемый им вариант. Главное, чтобы кодировка экспорта и способ импорта соответствовали друг другу.
Для нашего примера контроль можно провести в такой последовательности:
Сохраните исходный CSV отдельно. Работайте с копией.
Уточните исходную кодировку. Используйте настройки экспорта или справку источника.
Импортируйте копию через Из текста/CSV. Проверьте File Origin и разделитель.
Сверьте данные. ID001, ID002 и ID003 должны соответствовать «Ёлка», «Щётка» и «Съёмник».
Подготовьте файл для редактора этикеток. Либо импортируйте исходный CSV с правильной кодировкой непосредственно там, либо экспортируйте новый CSV из проверенных данных Excel в поддерживаемой редактором кодировке.
Проверьте файл в редакторе этикеток. Если создавали новый CSV, повторно откройте именно его; при прямом импорте проверьте исходный файл в редакторе. Сверьте кириллицу и структуру столбцов.
Проверьте макет и один физический отпечаток. Сравните текст с исходной выгрузкой.
Если кириллица правильная в CSV, Excel и макете, но искажается только на бумаге, не объявляйте CSV причиной автоматически. Тогда отдельно проверяют шрифт, драйвер, передачу задания и поддержку символов конкретным процессом печати.
Полезный диагностический принцип: найти последний этап, где контрольные слова отображаются правильно, и первый, где возникает искажение.
Нужен ли UTF-8 BOM, чтобы кириллица открывалась правильно?
BOM может помочь некоторым версиям Excel распознать UTF-8, но он не обязателен для всех программ и не исправляет уже поврежденные данные. Ориентируйтесь на реальную кодировку файла и результат контролируемого импорта.
Почему русский текст исправился, а названия полей попали в один столбец?
Кодировка и разделитель являются разными настройками CSV. Кириллица может читаться правильно, но если выбран неверный разделитель, несколько полей попадут в один столбец. Проверьте запятую, точку с запятой или другой разделитель, который фактически использован в исходном файле.
Можно ли восстановить текст, если кириллица уже превратилась в вопросительные знаки и файл сохранен?
Если исходные символы были заменены и поврежденный файл перезаписан, смена кодировки не обязана вернуть первоначальные буквы. Нужна исходная выгрузка, резервная копия или другой неповрежденный источник. Восстанавливать названия наугад не следует.