JavaRush
AI Academy
new
Акція
Університет
Java FullStack
Python FullStack
AI Native Developer
new
Навчання
Курси
Задачі
Опитування
Ігри
Допомога
Графік стусанів
Стажування
Спільнота
Користувачі
Форум
Чат
Статті
Історії успіху
Дії
Відгуки
Передплати
Світла тема

Лекції

  • Відгуки
  • Про нас
  • CS50
Почати
Почати навчання
Почати навчання
  • Моє навчання
  • Курси
  • Університет
  • Карта квестів
  • Лекції
  • Кодування: чому зʼявляються «кракозябри»

    Kotlin SELF
    44 рівень, 0 лекція
    Розбираємося, чому «текстовий файл» насправді складається з байтів ( ByteArray), як ці байти перетворюються на рядки ( String) за правилом декодування ( Charset) і чому в разі невідповідності кодувань зʼявляються «ÐŸÑ€Ð¸Ð²ÐµÑ‚» та «??????». На прикладах Kotlin/JVM вчимося явно кодувати й декодувати через Charsets . UTF_8 та діагностувати проблему, друкуючи байти в hex.
    Відкрита
  • Кодування: UTF‑8 / UTF‑16 / ASCII

    Kotlin SELF
    44 рівень, 1 лекція
    Розбираємося, як кодування перетворюють текст на байти й назад: чим обмежений ASCII, чому UTF‑8 став стандартом де-факто (ASCII-сумісність і змінна довжина), як UTF‑16 повʼязаний із JVM (тип Char, сюрпризи String.length на емодзі), звідки беруться «зайві байти» в Charsets.UTF_16 і які типові помилки призводять до «кракозябр».
    Відкрита
  • Стабілізуємо поведінку застосунку

    Kotlin SELF
    44 рівень, 2 лекція
    Розбираємося, чому «кодування за замовчуванням» — це прихована залежність від оточення, і як зробити поведінку введення-виведення відтворюваною: використовуємо явний Charset і Charsets . UTF_8, читаємо та пишемо текст через readText/ writeText, за потреби працюємо з ByteArray і ручним декодуванням, застосовуємо потоковий підхід через bufferedReader/ use, а також збираємо міні-API, щоб кодування залишалося «єдиною точкою правди». Наприкінці — типові помилки під час роботи з кодуваннями.
    Відкрита
  • BOM — як розпізнати і чому він ламає файл

    Kotlin SELF
    44 рівень, 3 лекція
    Розбираємося, що таке BOM ( Byte Order Mark), чому невидимий префікс на початку файлу призводить до «магічних» невідповідностей рядків (наприклад, == раптом повертає false), як діагностувати проблему за байтами ( ByteArray, сигнатура EF BB BF) і як безпечно видаляти BOM на рівні байтів і рядків (через '\uFEFF'), не пошкоджуючи коректні дані.
    Відкрита
  • Очищення «брудного тексту»

    Kotlin SELF
    44 рівень, 4 лекція
    Розбираємося, як привести текст із файлу до передбачуваного вигляду перед парсингом: читаємо дані як ByteArray, видаляємо UTF‑8 BOM за сигнатурою EF BB BF, декодуємо через Charsets.UTF_8, нормалізуємо переноси рядків ( "\r\n", "\n", "\r") і збираємо все у функцію readCleanUtf8(), щоб парсер працював лише з «чистими» вхідними даними.
    Відкрита
Навчання
  • Курси програмування
  • Реєстрація
  • Курс Java
  • Допомога із задачами
  • Ціни
Спільнота
  • Користувачі
  • Статті
  • Форум
  • Чат
  • Історії успіху
  • Дії
Компанія
  • Про нас
  • Контакти
  • Відгуки
  • FAQ
  • Підтримка
JavaRush JavaRush — це інтерактивний онлайн-курс вивчення Java-програмування з нуля. Він містить 1200 практичних задач із перевіркою розв'язання одним клацанням, необхідний мінімум знань із теоретичних основ Java, а ще мотивувальні «фішки», які допоможуть пройти курс до кінця: ігри, опитування, цікаві проєкти й статті про ефективне навчання та кар'єру Java‑девелопера.
Підписуйтесь
Мова інтерфейсу
Русский English
Українська
Програмістами не народжуються © 2026 JavaRush
MastercardVisa
Програмістами не народжуються © 2026 JavaRush