Кодировщик/Декодировщик Base64
Бесплатный онлайн-кодировщик и декодировщик Base64 для быстрого кодирования и декодирования. Поддерживает безопасную обработку UTF-8, преобразование в формат URL-safe, автоматическое дополнение, статистику в реальном времени и безопасное копирование. Предоставляет примеры кода на нескольких языках программирования, генерацию Data URI, подробные руководства по использованию и ответы на частые вопросы. Удобный интерфейс с двусторонним заполнением полей, поддержкой клавиатуры и адаптивным дизайном для мобильных устройств. Не требует загрузки, работает прямо в браузере.
Кодировать (Текст → Base64)
Декодировать (Base64 → Текст)
Как использовать
Функции
- Поддержка UTF-8: корректная обработка не-ASCII символов (с использованием encodeURIComponent/unescape).
- URL-safe режим: переключение между + / → - _ одним кликом, опциональное удаление заполнителя =.
- Предварительная обработка перед декодированием: игнорирование пробелов, автоматическое преобразование в URL-safe формат и добавление заполнителей =.
- Интерактивность в реальном времени: мгновенная обработка ввода с отображением статистики длины и роста размера.
- Удобство использования: быстрое копирование, двусторонняя синхронизация полей ввода, поддержка клавиатуры и адаптация под мобильные устройства.
- Единая тема оформления: отсутствие классов dark: Tailwind — полная стилизация через темы DaisyUI.
Что такое Base64?
Base64 — это метод кодирования двоичных данных в текстовый формат ASCII, часто используемый для передачи изображений или содержимого файлов по текстовым протоколам, таким как JSON, XML и HTTP.
Каждые 3 байта преобразуются в 4 печатных символа, что обычно приводит к увеличению размера примерно на 33%.
Стандартный Base64 использует символы A–Z, a–z, 0–9, +, / и знак заполнения =; вариант URL-safe заменяет + и / на - и _, чтобы избежать проблем с экранированием в URL.
Типичные сценарии использования
- Встраивание изображений или небольших файлов в виде Data URI.
- Передача двоичных данных между клиентом и сервером (например, зашифрованных сообщений или сжатых потоков).
- Преобразование текста в печатный формат для избежания проблем с кодировкой или невидимых символов.
Частые вопросы и важные примечания
- Набор символов: в веб-среде сначала выполните кодирование текста в UTF-8 (этот инструмент делает это автоматически).
- URL-safe: для параметров или путей URL предпочтительно использовать вариант URL-safe и рассмотреть возможность удаления символов заполнения.
- Заполнение: некоторые реализации позволяют опускать знак =; при декодировании длина автоматически дополняется до кратной 4 символам.
- Переносы строк: MIME Base64 может содержать переносы строк; выберите «Игнорировать пробелы» при декодировании для их обработки.
Кодирование и декодирование Base64 на языках программирования
const encoded = btoa(unescape(encodeURIComponent(text)));
// Безопасно для URL
const urlSafe = encoded.replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/g, '');
// Предварительная обработка: замена -_ на +/
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)));
$encoded = base64_encode($text);
// Безопасно для URL
$urlSafe = rtrim(strtr($encoded, '+/', '-_'), '=');
$b64 = strtr($input, '-_', '+/');
// Автоматическое добавление '='
if (strlen($b64) % 4 !== 0) $b64 .= str_repeat('=', 4 - (strlen($b64) % 4));
$text = base64_decode($b64);
import base64
encoded = base64.b64encode(text.encode('utf-8')).decode('ascii')
# Кодирование в безопасном для URL формате (удаление выравнивания)
url_safe = encoded.replace('+','-').replace('/','_').rstrip('=')
import base64
def b64_decode(s: str) -> str:
s = s.replace('-','+').replace('_','/')
s += '=' * (-len(s) % 4) # Автоматическое добавление '='
return base64.b64decode(s).decode('utf-8')
import (
"encoding/base64"
)
enc := base64.StdEncoding.EncodeToString([]byte(text))
// Кодирование в безопасном для URL формате (без выравнивания)
urlEnc := base64.RawURLEncoding.EncodeToString([]byte(text))
import (
"encoding/base64"
)
decBytes, err := base64.StdEncoding.DecodeString(enc)
// Декодирование из безопасного для URL формата (без выравнивания)
decURL, err2 := base64.RawURLEncoding.DecodeString(urlEnc)
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());
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();
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));
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);