Base64 Encoder and Decoder

A free online Base64 encoder and decoder for quick encoding and decoding, with convenient features like UTF-8 support, secure copy, and clear.

Кодування (текст → Base64)

Декодування (Base64 → текст)

Інструкції з використання

Base64 перетворює двійкові дані на ASCII для безпечного перенесення та зберігання. Розмір збільшується приблизно на 33%.
Кодування: перетворення чистого тексту в Base64 для безпечнішої передачі.
Декодування: відновлення початкового тексту з Base64 рядка.

Функції

  • Безпечна робота з UTF-8: коректне оброблення не-ASCII символів (з використанням encodeURIComponent/unescape).
  • Підтримка URL-безпечного формату: одним кліком перемикаєте + / → - _, можливо видалити заповнювач =.
  • Попередня обробка при декодуванні: ігнорування пробілів, автоматичне відновлення URL-безпечного формату та доповнення =.
  • Інтерактивність: автоматична обробка вводу, відображення довжини та статистики зростання.
  • Зручність: швидке копіювання, взаємне заповнення результатів, клавіатурна навігація, оптимізовано для мобільних пристроїв.
  • Єдиний стиль: без Tailwind-класів dark:, повністю використовує тему DaisyUI.

Швидкі приклади

Оригінальний текст:
Hello, World!
Base64:
SGVsbG8sIFdvcmxkIQ==

Що таке Base64

Base64 — це спосіб кодування двійкових даних у текст ASCII, який часто використовується для передачі зображень або вмісту файлів у текстових протоколах, таких як JSON, XML або HTTP.

Він перетворює кожні 3 байти на 4 друковані символи, що зазвичай призводить до збільшення розміру приблизно на 33%.

Стандартний Base64 використовує A–Z a–z 0–9 + / і заповнювач =; URL-безпечна версія замінює + / на - _, щоб уникнути проблем з екрануванням у URL.

Поширені випадки використання

  • Вбудовування зображень або малих файлів як Data URI.
  • Передача двійкових даних між клієнтом і сервером (наприклад, зашифровані тексти, стиснуті потоки).
  • Зроблення тексту друкованим, щоб уникнути проблем з неузгодженістю кодування або невидимими символами.

Часті запитання та важливі моменти

  • Набір символів: у веб-середовищі спочатку обробіть текст у UTF-8 (цей інструмент вже має це вбудовано).
  • URL-безпечний: для параметрів або шляхів URL рекомендується використовувати URL-безпечну версію та розглянути можливість видалення заповнювачів.
  • Заповнювач: деякі реалізації дозволяють опускати =, під час декодування необхідно автоматично доповнити до кратного 4.
  • Розриви рядків: MIME Base64 може містити розриви рядків; під час декодування можна включити «Ігнорувати пробіли».

Як кодувати та декодувати Base64 за допомогою мов програмування

JavaScript
Текст → Base64 (безпечний UTF-8)
const encoded = btoa(unescape(encodeURIComponent(text)));
// URL-безпечний
const urlSafe = encoded.replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/g, '');
Декодування (Base64 → текст)
// Попередня обробка: замініть -_ на +/
let b64 = input.replace(/-/g, '+').replace(/_/g, '/');
if (b64.length % 4 !== 0) b64 = b64.padEnd(b64.length + (4 - (b64.length % 4)), '=');
const text = decodeURIComponent(escape(atob(b64)));
PHP
Кодування (текст → Base64)
$encoded = base64_encode($text);
// URL-безпечний
$urlSafe = rtrim(strtr($encoded, '+/', '-_'), '=');
Декодування (Base64 → текст)
$b64 = strtr($input, '-_', '+/');
// Автоматичне доповнення '='
if (strlen($b64) % 4 !== 0) $b64 .= str_repeat('=', 4 - (strlen($b64) % 4));
$text = base64_decode($b64);
Python
Кодування (текст → Base64)
import base64

encoded = base64.b64encode(text.encode('utf-8')).decode('ascii')
# URL-безпечне кодування (без заповнювача)
url_safe = encoded.replace('+','-').replace('/','_').rstrip('=')
Декодування (Base64 → текст)
import base64

def b64_decode(s: str) -> str:
    s = s.replace('-','+').replace('_','/')
    s += '=' * (-len(s) % 4)  # Автоматичне доповнення '='
    return base64.b64decode(s).decode('utf-8')
Go
Кодування (текст → Base64)
import (
    "encoding/base64"
)

enc := base64.StdEncoding.EncodeToString([]byte(text))
// URL-безпечне кодування (без заповнювача)
urlEnc := base64.RawURLEncoding.EncodeToString([]byte(text))
Декодування (Base64 → текст)
import (
    "encoding/base64"
)

decBytes, err := base64.StdEncoding.DecodeString(enc)
// URL-безпечне декодування (без заповнювача)
decURL, err2 := base64.RawURLEncoding.DecodeString(urlEnc)
Rust
Кодування (текст → Base64)
use base64::{engine::general_purpose, Engine as _};

let enc = general_purpose::STANDARD.encode(text.as_bytes());
// URL-безпечне кодування (без заповнювача)
let url_enc = general_purpose::URL_SAFE_NO_PAD.encode(text.as_bytes());
Декодування (Base64 → текст)
use base64::{engine::general_purpose, Engine as _};

let dec_bytes = general_purpose::STANDARD.decode(&enc).unwrap();
let dec = String::from_utf8(dec_bytes).unwrap();

let url_dec = String::from_utf8(
    general_purpose::URL_SAFE_NO_PAD.decode(&url_enc).unwrap()
).unwrap();
Залежність Cargo: base64 = "0.22"
Java
Кодування (текст → Base64)
import java.nio.charset.StandardCharsets;
import java.util.Base64;

String enc = Base64.getEncoder().encodeToString(text.getBytes(StandardCharsets.UTF_8));
// URL-безпечне кодування (без заповнювача)
String urlEnc = Base64.getUrlEncoder().withoutPadding().encodeToString(text.getBytes(StandardCharsets.UTF_8));
Декодування (Base64 → текст)
import java.nio.charset.StandardCharsets;
import java.util.Base64;

String dec = new String(Base64.getDecoder().decode(enc), StandardCharsets.UTF_8);
String urlDec = new String(Base64.getUrlDecoder().decode(urlEnc), StandardCharsets.UTF_8);

Приклади Data URI

Вбудовування зображень або малих файлів у форматі Data URI:

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...

Увага: велики файли не варто використовувати як Data URI, оскільки це значно збільшить розмір HTML/JSON і негативно вплине на продуктивність.