Кракозябри в CSV: як виправити кодування UTF-8
Кракозябри в CSV замість українських літер: чому виникають і як виправити кодування UTF-8 в Excel, Блокноті та онлайн. П'ять робочих способів.
Відкриваєте вивантаження з 1С або банку, а замість «Іваненко Іван» бачите «Іваненко Іван» чи взагалі «????????». Кракозябри в CSV — не пошкоджений файл і не вірус. Це майже завжди неправильно вгадане кодування, і виправляється воно за хвилину, якщо знати, що саме сталося.
Нижче — коротка теорія, таблиця для швидкої діагностики за виглядом «крякозябр» і п'ять способів повернути нормальний текст.
Чому взагалі виникає проблема #
У файлі CSV немає жодного місця, де було б записано, якою саме таблицею символів його треба читати. Файл — це послідовність байтів. Одна й та сама послідовність у різних кодуваннях дає різні літери.
Коли Excel відкриває CSV подвійним кліком, він не питає, а вгадує: бере системне кодування Windows (для української локалізації це найчастіше Windows-1251) і застосовує його. Якщо файл насправді в UTF-8, кожна кирилична літера, записана двома байтами, перетворюється на два випадкові символи. Звідси й характерні пари на кшталт «Ð¿Ñ€Ð¸».
Три кодування, які реально трапляються в українських файлах:
- UTF-8 — сучасний стандарт, підтримує всі мови світу. Кирилична літера займає два байти. Це те, у чому варто зберігати все.
- Windows-1251 (CP1251) — старе однобайтове кодування для кирилиці. Досі використовується в експорті деяких облікових систем.
- CP866 (DOS) — реліктове кодування, зрідка трапляється у виписках дуже старого ПЗ.
UTF-8 — це не «українське кодування», а універсальне. Якщо у вас є вибір при збереженні, обирайте його завжди: файл коректно прочитають і в Києві, і в Берліні, і в скрипті на Python.
Швидка діагностика за виглядом тексту #
Вигляд «крякозябр» досить точно вказує, що саме пішло не так.
| Що бачите | Що сталося | Як лікувати |
|---|---|---|
| Іваненко, привіт | Файл у UTF-8, читається як Windows-1251 | Імпортувати з явним вибором UTF-8 |
| I’âàíåíêî, ëèñò | Файл у Windows-1251, читається як UTF-8 | Імпортувати з вибором кирилиці 1251 |
| ????????? замість літер | Кирилиця не вмістилася в обране кодування, дані вже втрачені | Взяти оригінал файлу заново |
| ▯▯▯ або порожні прямокутники | Кодування правильне, немає потрібного шрифту | Змінити шрифт у клітинках |
| Прізвище у першій клітинці | BOM прочитано як текст | Прибрати BOM або імпортувати як UTF-8 |
| Усе в одному стовпці, але літери нормальні | Проблема не в кодуванні, а в роздільнику | Вказати крапку з комою чи кому |
Останній рядок важливий: кодування й роздільник — це дві різні проблеми, які часто плутають. Якщо українські літери читаються, але таблиця злиплася в стовпець, кодування тут ні до чого. І перше, і друге видно одразу в попередньому перегляді конвертера CSV в Excel, тому діагностику зручно починати саме звідти.
Спосіб 1: правильний імпорт в Excel #
Це головний метод. Він не змінює файл, а лише каже Excel, як його читати.
- Відкрийте порожню книгу Excel — не сам файл CSV.
- Перейдіть на вкладку Дані → Отримати дані → З файлу → З тексту/CSV. У старіших версіях це «Дані» → «З тексту».
- Оберіть свій файл і натисніть «Імпорт».
- У вікні попереднього перегляду знайдіть поле Походження файлу (File Origin). Виберіть 65001: Юнікод (UTF-8).
- Подивіться на попередній перегляд: літери мають стати нормальними. Якщо ні — спробуйте 1251: Кирилиця (Windows).
- У полі Роздільник оберіть той, що дає правильний розподіл на стовпці: кома, крапка з комою або табуляція.
- Натисніть Перетворити дані, якщо потрібно задати типи стовпців, або одразу Завантажити.
На кроці 7 варто затриматися: у редакторі Power Query можна позначити стовпці з кодами, артикулами й телефонами як Текст. Це врятує провідні нулі, які Excel інакше з'їсть, перетворивши 0501234567 на 501234567.
Спосіб 2: онлайн-конвертація в браузері #
Якщо Excel під рукою немає або возитися з майстром імпорту не хочеться, простіше перегнати файл одразу в XLSX з правильним кодуванням.
- Відкрийте конвертер CSV в Excel.
- Перетягніть проблемний файл у вікно.
- Перевірте попередній перегляд: інструмент визначає кодування й роздільник автоматично, але їх можна змінити вручну.
- Переконайтеся, що прізвища та назви читаються нормально, а стовпці розділені правильно.
- Збережіть результат як
.xlsx— далі він відкриється подвійним кліком без жодних сюрпризів.
Файл при цьому не вивантажується на сервер: перекодування виконується у вашому браузері. Для банківських виписок і реєстрів персональних даних це принципово. Якщо потрібно просто подивитися вміст, не конвертуючи, скористайтеся переглядачем CSV — він теж уміє перемикати кодування на льоту.
Спосіб 3: перезбереження через Блокнот #
Найпростіший спосіб фізично змінити кодування файлу, без жодних програм.
- Клацніть на файлі правою кнопкою → Відкрити за допомогою → Блокнот.
- Якщо текст читається нормально, файл уже в UTF-8 і проблема була лише в Excel.
- Якщо текст читається — виберіть Файл → Зберегти як.
- Унизу вікна в списку Кодування оберіть UTF-8 (у Windows 11 краще «UTF-8 з BOM», якщо такий пункт є).
- Збережіть під новою назвою, щоб не втратити оригінал.
Обмеження: Блокнот погано тягне файли понад 50–100 МБ і не вміє показати текст у CP1251, якщо система вже прочитала його як UTF-8. Для важких файлів беріть Notepad++ — там є меню «Кодування» з окремими пунктами «Перетворити в UTF-8» і «Інтерпретувати як…». Різниця між цими двома пунктами критична: перший змінює байти, другий лише спосіб читання.
Спосіб 4: LibreOffice Calc #
LibreOffice завжди питає про кодування, а не вгадує, — і це його велика перевага саме для CSV.
- Відкрийте файл у LibreOffice Calc подвійним кліком.
- З'явиться діалог Імпорт тексту.
- У полі Набір символів оберіть «Юнікод (UTF-8)» або «Кирилиця (Windows-1251)» і дивіться на попередній перегляд унизу.
- У блоці Параметри роздільника позначте потрібний символ.
- Натисніть «ОК», перевірте дані й збережіть як
.xlsxабо перезбережіть CSV у правильному кодуванні.
Це безкоштовний варіант, який працює на Windows, macOS і Linux, і він же найзручніший, коли доводиться регулярно приймати файли з різних систем.
Спосіб 5: змінити налаштування самого джерела #
Найкращий ремонт — той, який не доводиться робити щоразу. Якщо кракозябри приходять регулярно з одного й того ж місця, проблема у налаштуваннях вивантаження.
- 1С. У формі збереження звіту зазвичай є вибір кодування файлу — виставте UTF-8 і збережіть налаштування.
- CRM та інтернет-магазини. У розділі експорту майже завжди є перемикач кодування й роздільника.
- Банк-клієнт. Якщо вибору немає, попросіть підтримку підказати формат вивантаження — часто є альтернативний профіль експорту.
- Excel як джерело. Зберігаючи CSV, обирайте пункт CSV UTF-8 (з роздільниками-комами), а не просто «CSV».
Домовленість про формат — це один рядок у листі: «CSV, кодування UTF-8, роздільник — крапка з комою». Він економить години на кожній наступній ітерації обміну.
Що таке BOM і чому Excel його любить #
BOM (byte order mark) — три службові байти на початку файлу, які прямо повідомляють: «далі UTF-8». Excel орієнтується саме на них. Файл UTF-8 з BOM він відкриє коректно навіть подвійним кліком; файл UTF-8 без BOM — швидше за все, перетворить на кракозябри.
Зворотний бік: деякі системи не очікують цих байтів і читають їх як частину першої клітинки. Тоді у заголовку з'являється  або невидимий символ, через який імпорт не знаходить стовпець «Прізвище».
Практичне правило:
- файл готуєте для людини й Excel — зберігайте UTF-8 з BOM;
- файл готуєте для іншої системи, API чи скрипта — зберігайте UTF-8 без BOM.
Профілактика: як більше не наступати на ці граблі #
- Ніколи не відкривайте важливий CSV подвійним кліком — тільки через імпорт.
- Одразу після імпорту перевіряйте кількість рядків: якщо їх стало менше, у даних є лапки чи переноси всередині клітинок.
- Тримайте робочу версію таблиці у XLSX, а CSV генеруйте лише для вивантаження. Про різницю форматів докладно написано у статті CSV чи Excel.
- Якщо файл треба комусь показати, а не завантажити в систему, надішліть XLSX або PDF — там кодування зашите всередині документа й зіпсуватися не може.
- Для швидкого правлення даних після імпорту зручний редактор таблиць онлайн: можна виправити заголовки й прибрати сміття, не встановлюючи Office.
Якщо ж дані вже збережені з символами ?????, відновити їх неможливо: у момент перекодування інформація про літери була фізично втрачена. Єдиний вихід — узяти вихідний файл повторно з джерела. Тому й важливо не перезаписувати оригінал, поки не переконаєтеся, що результат читається правильно.
Часті запитання
Чому в Excel замість українських літер кракозябри?
Файл збережено в UTF-8, а Excel читає його в системному кодуванні Windows-1251. Він не питає про кодування при відкритті подвійним кліком, а вгадує — і помиляється. Виправляється імпортом через «Дані» → «З тексту/CSV» з явним вибором UTF-8.
Як зберегти CSV у кодуванні UTF-8 з Excel?
У вікні «Зберегти як» оберіть тип файлу **CSV UTF-8 (з роздільниками-комами)**. Звичайний пункт «CSV (розділений комами)» збереже файл у системному кодуванні, і на іншому комп'ютері він може відкритися некоректно.
Чи можна виправити файл, у якому вже стоять знаки питання?
Ні. Символи `?` означають, що літери не вмістилися в обране кодування і були замінені під час збереження — самі дані вже втрачені. Потрібно повторно вивантажити файл із системи-джерела.
Чим відрізняється UTF-8 від UTF-8 з BOM?
BOM — це три службові байти на початку файлу, які позначають кодування. Excel на них орієнтується й відкриває такий файл правильно навіть подвійним кліком, а от деякі програми та скрипти можуть прочитати їх як зайві символи у першій клітинці.
Чому таблиця відкрилася в одному стовпці, хоча літери нормальні?
Це проблема роздільника, а не кодування. Excel очікує символ, заданий у налаштуваннях системи, а у файлі стоїть інший — найчастіше кома замість крапки з комою. Оберіть правильний роздільник у майстрі імпорту.
Чи безпечно виправляти кодування онлайн, якщо у файлі персональні дані?
Так, якщо сервіс обробляє файл локально у браузері й не надсилає його на сервер. У такому разі дані не залишають ваш пристрій. Для сервісів, які вивантажують файл на сервер, краще використати Блокнот або LibreOffice.
CSV у Excel — спробуйте просто зараз
Зробити з CSV нормальний XLSX із правильним кодуванням і типами даних. Файл не завантажується на сервер, реєстрація не потрібна.
Відкрити інструмент