Base64 Encoder and Decoder
A free online Base64 encoder and decoder that quickly encodes and decodes Base64, with convenient features like UTF-8 support, secure copy, and clear.
Penyandian (teks → Base64)
Penerjemahan (Base64 → teks)
Panduan Penggunaan
Base64 menyandikan data binari menjadi ASCII supaya boleh dipindahkan dan disimpan. Saiz akan meningkat sekitar 33%.
Penyandian: Menukar teks biasa kepada Base64 untuk pemindahan yang lebih selamat.
Penerjemahan: Memulihkan teks asal daripada rantaian Base64.
Ciri-ciri
- Selamat UTF-8: Menangani karakter bukan ASCII dengan betul (menggunakan encodeURIComponent/unescape).
- Sokongan URL-safe: Tukar + / → - _ dengan satu klik, pilih buang pengisian =.
- Pemprosesan sebelum penerjemahan: Boleh mengabaikan ruang, memulihkan URL-safe secara automatik, dan mengisi = secara automatik.
- Interaktif segera: Input diproses secara automatik, tunjukkan statistik panjang dan peningkatan.
- Kegunaan: Salin pantas, isian saling, boleh diakses melalui papan kekunci, mesra peranti mudah alih.
- Tema seragam: Tiada kelas dark: Tailwind, sepenuhnya menggunakan tema DaisyUI.
Apa itu Base64
Base64 adalah cara mengodkan data binari menjadi teks ASCII, sering digunakan untuk menghantar kandungan gambar atau fail dalam protokol teks seperti JSON, XML, dan HTTP.
Ia memetakan setiap 3 bait menjadi 4 aksara boleh cetak, biasanya menyebabkan peningkatan saiz sekitar 33%.
Base64 piawai menggunakan A–Z a–z 0–9 + / dan pengisi =; varian selamat-URL menggantikan + / dengan - _ untuk mengelakkan masalah pelarian dalam URL.
Kegunaan Biasa
- Masukkan gambar atau fail kecil sebagai Data URI.
- Menghantar data binari antara klien dan pelayan (seperti teks terenkripsi, aliran mampat).
- Membuat teks boleh dicetak untuk mengelakkan masalah ketidakkonsistenan kod atau aksara tidak kelihatan.
Soalan Lazim dan Perhatian
- Set karakter: Untuk persekitaran web, proses teks terlebih dahulu dengan UTF-8 (alat ini sudah termasuk).
- Selamat-URL: Cadangkan gunakan varian selamat-URL untuk parameter atau laluan URL, dan pertimbangkan untuk menghapus pengisi.
- Pengisi: Sesetengah pelaksanaan membenarkan penghapusan =, dan perlu ditambah semula secara automatik kepada gandaan 4 semasa dekod.
- Baris baru: MIME Base64 mungkin mengandungi baris baru; semasa dekod, pilih "abaikan ruang putih".
Bagaimana melakukan penyandian dan penerjemahan Base64 melalui bahasa pengaturcaraan
JavaScript
Teks → Base64 (selamat UTF-8)
const encoded = btoa(unescape(encodeURIComponent(text)));
// Selamat-URL
const urlSafe = encoded.replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/g, '');
Dekod (Base64 → Teks)
// Pra-pemprosesan: Ganti -_ dengan +/
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
Kodkan (Teks → Base64)
$encoded = base64_encode($text);
// Selamat-URL
$urlSafe = rtrim(strtr($encoded, '+/', '-_'), '=');
Dekod (Base64 → Teks)
$b64 = strtr($input, '-_', '+/');
// Tambahkan '=' secara automatik
if (strlen($b64) % 4 !== 0) $b64 .= str_repeat('=', 4 - (strlen($b64) % 4));
$text = base64_decode($b64);
Python
Kodkan (Teks → Base64)
import base64
encoded = base64.b64encode(text.encode('utf-8')).decode('ascii')
# Kodkan selamat-URL (tanpa pengisi)
url_safe = encoded.replace('+','-').replace('/','_').rstrip('=')
Dekod (Base64 → Teks)
import base64
def b64_decode(s: str) -> str:
s = s.replace('-','+').replace('_','/')
s += '=' * (-len(s) % 4) # Tambahkan '=' secara automatik
return base64.b64decode(s).decode('utf-8')
Go
Kodkan (Teks → Base64)
import (
"encoding/base64"
)
enc := base64.StdEncoding.EncodeToString([]byte(text))
// Kodkan selamat-URL (tanpa pengisi)
urlEnc := base64.RawURLEncoding.EncodeToString([]byte(text))
Dekod (Base64 → Teks)
import (
"encoding/base64"
)
decBytes, err := base64.StdEncoding.DecodeString(enc)
// Dekod selamat-URL (tanpa pengisi)
decURL, err2 := base64.RawURLEncoding.DecodeString(urlEnc)
Rust
Kodkan (Teks → Base64)
use base64::{engine::general_purpose, Engine as _};
let enc = general_purpose::STANDARD.encode(text.as_bytes());
// Kodkan selamat-URL (tanpa pengisi)
let url_enc = general_purpose::URL_SAFE_NO_PAD.encode(text.as_bytes());
Dekod (Base64 → Teks)
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();
Ketergantungan Cargo: base64 = "0.22"
Java
Kodkan (Teks → Base64)
import java.nio.charset.StandardCharsets;
import java.util.Base64;
String enc = Base64.getEncoder().encodeToString(text.getBytes(StandardCharsets.UTF_8));
// Kodkan selamat-URL (tanpa pengisi)
String urlEnc = Base64.getUrlEncoder().withoutPadding().encodeToString(text.getBytes(StandardCharsets.UTF_8));
Dekod (Base64 → Teks)
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);