Конверт Майстер

Кракозябри в 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, як його читати.

  1. Відкрийте порожню книгу Excel — не сам файл CSV.
  2. Перейдіть на вкладку ДаніОтримати даніЗ файлуЗ тексту/CSV. У старіших версіях це «Дані» → «З тексту».
  3. Оберіть свій файл і натисніть «Імпорт».
  4. У вікні попереднього перегляду знайдіть поле Походження файлу (File Origin). Виберіть 65001: Юнікод (UTF-8).
  5. Подивіться на попередній перегляд: літери мають стати нормальними. Якщо ні — спробуйте 1251: Кирилиця (Windows).
  6. У полі Роздільник оберіть той, що дає правильний розподіл на стовпці: кома, крапка з комою або табуляція.
  7. Натисніть Перетворити дані, якщо потрібно задати типи стовпців, або одразу Завантажити.

На кроці 7 варто затриматися: у редакторі Power Query можна позначити стовпці з кодами, артикулами й телефонами як Текст. Це врятує провідні нулі, які Excel інакше з'їсть, перетворивши 0501234567 на 501234567.

Спосіб 2: онлайн-конвертація в браузері #

Якщо Excel під рукою немає або возитися з майстром імпорту не хочеться, простіше перегнати файл одразу в XLSX з правильним кодуванням.

  1. Відкрийте конвертер CSV в Excel.
  2. Перетягніть проблемний файл у вікно.
  3. Перевірте попередній перегляд: інструмент визначає кодування й роздільник автоматично, але їх можна змінити вручну.
  4. Переконайтеся, що прізвища та назви читаються нормально, а стовпці розділені правильно.
  5. Збережіть результат як .xlsx — далі він відкриється подвійним кліком без жодних сюрпризів.

Файл при цьому не вивантажується на сервер: перекодування виконується у вашому браузері. Для банківських виписок і реєстрів персональних даних це принципово. Якщо потрібно просто подивитися вміст, не конвертуючи, скористайтеся переглядачем CSV — він теж уміє перемикати кодування на льоту.

Спосіб 3: перезбереження через Блокнот #

Найпростіший спосіб фізично змінити кодування файлу, без жодних програм.

  1. Клацніть на файлі правою кнопкою → Відкрити за допомогоюБлокнот.
  2. Якщо текст читається нормально, файл уже в UTF-8 і проблема була лише в Excel.
  3. Якщо текст читається — виберіть ФайлЗберегти як.
  4. Унизу вікна в списку Кодування оберіть UTF-8 (у Windows 11 краще «UTF-8 з BOM», якщо такий пункт є).
  5. Збережіть під новою назвою, щоб не втратити оригінал.

Обмеження: Блокнот погано тягне файли понад 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 із правильним кодуванням і типами даних. Файл не завантажується на сервер, реєстрація не потрібна.

Відкрити інструмент

Схожі статті

Практичні інструкції з нашого блогу.