Pengekod/Penyahkod Base64

Penyahkod dan penyahkod Base64 dalam talian percuma untuk pengekodan dan penyahkodan pantas, menampilkan pengendalian selamat UTF-8, penukaran selamat URL, padding automatik, statistik masa nyata, dan fungsi salinan selamat. Menyediakan contoh kod pelbagai bahasa, penjanaan Data URI, panduan penggunaan terperinci, dan soalan lazim. Antara muka mesra pengguna dengan pengisian input dua hala, aksesibiliti papan kekunci, dan reka bentuk mesra mudah alih. Tiada muat turun diperlukan, berfungsi terus dalam pelayar anda.

Enkod (Teks → Base64)

Dekod (Base64 → Teks)

Cara Menggunakan

Base64 mengekod data binari kepada ASCII untuk penghantaran dan penyimpanan yang selamat. Saiz meningkat kira-kira 33%.
Ekod: Tukar teks biasa kepada Base64 untuk penghantaran selamat.
Nyahkod: Pulihkan teks asal daripada rentetan Base64.

Ciri-ciri

  • Selamat UTF-8: Mengendalikan aksara bukan-ASCII dengan betul (dibungkus dengan encodeURIComponent/unescape).
  • Sokongan Selamat URL: Togol satu klik antara + / → - _, pilihan untuk membuang padding =.
  • Pra-proses Sebelum Nyahkod: Abaikan ruang putih, tukar automatik ke Selamat URL, dan tambah padding = secara automatik.
  • Interaksi Masa Nyata: Input diproses serta-merta, dengan statistik panjang dan kadar pertumbuhan dipaparkan.
  • Kebolehgunaan: Salin cepat, isi dua hala antara input, boleh diakses papan kekunci, mesra mudah alih.
  • Tema Konsisten: Tiada kelas Tailwind dark: — digayakan sepenuhnya dengan tema DaisyUI.

Contoh Pantas

Teks Asal:
Hello, World!
Base64:
SGVsbG8sIFdvcmxkIQ==

Apa itu Base64?

Base64 ialah kaedah mengekod data binari kepada teks ASCII, lazim digunakan untuk menghantar imej atau kandungan fail melalui protokol berasaskan teks seperti JSON, XML, dan HTTP.

Ia memetakan setiap 3 bait kepada 4 aksara boleh cetak, biasanya menyebabkan peningkatan saiz kira-kira 33%.

Base64 Standard menggunakan A–Z, a–z, 0–9, +, /, dan aksara padding =; varian Selamat URL menggantikan + dan / dengan - dan _ untuk mengelakkan isu pelarian dalam URL.

Kes Penggunaan Lazim

  • Sematkan imej atau fail kecil sebagai Data URI.
  • Hantar data binari antara klien dan pelayan (cth., teks sukar disulitkan, aliran termampat).
  • Tukar teks kepada format boleh cetak untuk mengelakkan ketidakkonsistenan pengekodan atau aksara tidak kelihatan.

Soalan Lazim & Nota Penting

  • Set Aksara: Dalam persekitaran web, kodkan teks sebagai UTF-8 terlebih dahulu (alat ini termasuk langkah ini secara automatik).
  • Selamat URL: Untuk parameter atau laluan URL, utamakan varian Selamat URL dan pertimbangkan untuk membuang aksara padding.
  • Padding: Sesetengah pelaksanaan membenarkan penghilangan =; semasa nyahkod, tambah padding secara automatik kepada gandaan 4 aksara.
  • Baris Baru: MIME Base64 mungkin mengandungi baris baru; pilih "Abaikan ruang putih" semasa nyahkod untuk mengendalikannya.

Cara Enkod/Dekod Base64 dalam 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, '');
Penyahkodan (Base64 → Teks)
// Pra-pemprosesan: Gantikan -_ 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
Pengekodan (Teks → Base64)
$encoded = base64_encode($text);
// Selamat URL
$urlSafe = rtrim(strtr($encoded, '+/', '-_'), '=');
Penyahkodan (Base64 → Teks)
$b64 = strtr($input, '-_', '+/');
// Tambah padding '=' secara automatik
if (strlen($b64) % 4 !== 0) $b64 .= str_repeat('=', 4 - (strlen($b64) % 4));
$text = base64_decode($b64);
Python
Pengekodan (Teks → Base64)
import base64

encoded = base64.b64encode(text.encode('utf-8')).decode('ascii')
# Pengekodan Selamat URL (Buang Padding)
url_safe = encoded.replace('+','-').replace('/','_').rstrip('=')
Penyahkodan (Base64 → Teks)
import base64

def b64_decode(s: str) -> str:
    s = s.replace('-','+').replace('_','/')
    s += '=' * (-len(s) % 4)  # Tambah padding '=' secara automatik
    return base64.b64decode(s).decode('utf-8')
Go
Pengekodan (Teks → Base64)
import (
    "encoding/base64"
)

enc := base64.StdEncoding.EncodeToString([]byte(text))
// Pengekodan Selamat URL (Tiada Padding)
urlEnc := base64.RawURLEncoding.EncodeToString([]byte(text))
Penyahkodan (Base64 → Teks)
import (
    "encoding/base64"
)

decBytes, err := base64.StdEncoding.DecodeString(enc)
// Penyahkodan Selamat URL (Tiada Padding)
decURL, err2 := base64.RawURLEncoding.DecodeString(urlEnc)
Rust
Pengekodan (Teks → Base64)
use base64::{engine::general_purpose, Engine as _};

let enc = general_purpose::STANDARD.encode(text.as_bytes());
// Pengekodan Selamat URL (Tiada Padding)
let url_enc = general_purpose::URL_SAFE_NO_PAD.encode(text.as_bytes());
Penyahkodan (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();
Kebergantungan Cargo: base64 = "0.22"
Java
Pengekodan (Teks → Base64)
import java.nio.charset.StandardCharsets;
import java.util.Base64;

String enc = Base64.getEncoder().encodeToString(text.getBytes(StandardCharsets.UTF_8));
// Pengekodan Selamat URL (Tiada Padding)
String urlEnc = Base64.getUrlEncoder().withoutPadding().encodeToString(text.getBytes(StandardCharsets.UTF_8));
Penyahkodan (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);

Contoh Data URI

Sematkan imej atau fail kecil sebagai Data URI:

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

Nota: Elakkan menggunakan Data URI untuk fail besar kerana ia meningkatkan saiz HTML/JSON secara ketara dan merendahkan prestasi.