Кодування

Data URI / Base64 зображення

Кодування зображення у Data URI (data:image/…;base64,…) для вставки в CSS/HTML і декодування Data URI або сирого Base64 назад у файл — усе прямо в браузері.

Перегляд зображення з’явиться тут.

Data URI дозволяє вбудувати вміст файлу (зазвичай зображення) безпосередньо в HTML чи CSS у вигляді Base64-рядка, замість посилання на окремий файл. Це прибирає додатковий мережевий запит ціною збільшення розміру самого документа.

Як користуватися

Типові сценарії

Що варто памʼятати

Base64-кодування збільшує розмір даних приблизно на 33% — для великих зображень Data URI зазвичай гірший вибір, ніж окремий файл із кешуванням браузера.

Data URI не кешується браузером окремо від документа, у якому він вбудований, — при кожному завантаженні сторінки він завантажується заново разом з нею.

Стаття про цей інструмент: Data URI: коли вбудовувати зображення прямо в код

Часті запитання

Навіщо вставляти зображення як Data URI замість посилання на файл?

Data URI вбудовує саме зображення прямо в CSS чи HTML як Base64-рядок, тож браузеру не потрібен окремий HTTP-запит до файлу. Це зручно для маленьких іконок і спрайтів, коли важливо скоротити кількість запитів.

Чи є обмеження на розмір Data URI?

Так, і це головний недолік підходу: великі Data URI роздувають розмір самого HTML/CSS-файлу, деякі email-клієнти й старі браузери мають ліміти на довжину, а головне — на відміну від звичайного файлу за URL, такий рядок не кешується браузером окремо. Тому Data URI підходить лише для невеликих зображень.

Чи безпечно завантажувати сюди зображення?

Так — кодування, декодування і перегляд відбуваються повністю у вашому браузері. Файл ніколи не надсилається на сервер.

Чи можна використати Data URI для SVG без Base64?

Так. SVG — це текст (XML), тому замість Base64 достатньо percent-encoding спецсимволів: data:image/svg+xml,%3Csvg...%3E. Такий варіант компактніший і лишається редагованим прямо в CSS-файлі.

Чи можна вставити Data URI в атрибут href чи background-image?

Так, Data URI працює всюди, де очікується посилання на ресурс — в src, href, background-image в CSS і навіть у @import. Синтаксис і обмеження розміру ті самі, що й для тегу img.

Статті: Кодування

Base64: навіщо потрібне кодування і як воно працює

Як Base64 перетворює бінарні дані на текст ASCII і де це реально потрібно.

Base32: чим відрізняється від Base64 і коли зручніший

Регістронезалежний алфавіт Base32 і сценарії, де він зручніший за Base64.

URL Encode/Decode: percent-encoding у посиланнях

Як спецсимволи в адресних рядках і query-параметрах перетворюються на %XX-послідовності.

HTML Entities: як безпечно виводити спецсимволи на сторінці

Чому символи < > & потрібно екранувати і як це запобігає поламаній розмітці.

JWT: структура токена та що означає "декодувати" JWT

Header, payload і signature JWT-токена та чому декодування — це не те саме, що перевірка підпису.

Unicode Escape: що означають послідовності \uXXXX

Звідки в JSON і JS-рядках беруться послідовності виду \u0041 і що вони означають.

ROT13 і шифр Цезаря: проста заміна символів

Чому зсув на 13 літер робить ROT13 симетричним і навіщо його взагалі використовують сьогодні.

Punycode: як домени з кирилицею працюють у DNS

Як домен на кшталт «приклад.укр» перетворюється на ASCII-запис із префіксом xn--.

Азбука Морзе: як текст перетворюється на крапки й тире

Принцип кодування літер крапками й тире та де азбука Морзе застосовується зараз.

Gzip + Base64: стиснення даних для передачі текстом

Навіщо стиснені бінарні дані ще й кодують у Base64 перед тим, як покласти в текстове поле.

XML Entities: екранування символів у XML-документах

П’ять обов’язкових XML-entity, без яких документ ламається при парсингу.