Base64 Encoder/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-safe: เปลี่ยน + / เป็น - _ ด้วยปุ่มเดียว พร้อมตัวเลือกตัด = ท้ายสาย
  • เตรียมการถอดรหัส: สามารถละเว้นช่องว่าง แปลงกลับจาก URL-safe และเติม = อัตโนมัติ
  • โต้ตอบแบบเรียลไทม์: ประมวลผลอัตโนมัติเมื่อพิมพ์ แสดงสถิติความยาวและการเพิ่มขึ้นของขนาด
  • ใช้งานง่าย: ปุ่มคัดลอกเร็ว สามารถเติมผลลัพธ์ข้ามช่อง ใช้งานได้ด้วยแป้นพิมพ์ และเหมาะสำหรับอุปกรณ์มือถือ
  • ธีมสม่ำเสมอ: ไม่ใช้คลาส dark: ของ Tailwind แต่ใช้ธีม 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-safe: แนะนำให้ใช้เวอร์ชัน URL-safe สำหรับพารามิเตอร์หรือเส้นทาง URL และพิจารณาตัดตัวเติมออก
  • ตัวเติม: การดำเนินการบางอย่างอนุญาตให้ละเว้น = โดยการถอดรหัสควรเติมให้ครบเป็นพหุคูณของ 4 อัตโนมัติ
  • การขึ้นบรรทัดใหม่: MIME Base64 อาจมีการขึ้นบรรทัดใหม่ ให้เลือก "ละเว้นอักขระว่าง" เมื่อถอดรหัส

วิธีการเข้ารหัสและถอดรหัส Base64 ผ่านภาษาโปรแกรม

JavaScript
ข้อความ → Base64 (ปลอดภัยสำหรับ UTF-8)
const encoded = btoa(unescape(encodeURIComponent(text)));
// URL-safe
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-safe
$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-safe (ตัดตัวเติม)
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-safe (ไม่มีตัวเติม)
urlEnc := base64.RawURLEncoding.EncodeToString([]byte(text))
ถอดรหัส (Base64 → ข้อความ)
import (
    "encoding/base64"
)

decBytes, err := base64.StdEncoding.DecodeString(enc)
// ถอดรหัสแบบ URL-safe (ไม่มีตัวเติม)
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-safe (ไม่มีตัวเติม)
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-safe (ไม่มีตัวเติม)
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 อย่างมากและส่งผลต่อประสิทธิภาพ