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 и снижает производительность.