Mã hóa tệp Base64 miễn phí

Chuyển đổi bất kỳ tệp nào thành Base64 data URL · mọi thứ đều ở trong trình duyệt của bạn.

Kéo và thả tệp vào đây

hoặc

Chọn hoặc thả tệp để mã hóa.

Cách hoạt động

  1. Tải tệp lên: Thả bất kỳ tệp nào, hình ảnh, PDF, phông chữ, âm thanh hoặc nhị phân, vào vùng thả hoặc nhấp để duyệt.
  2. Nhận chuỗi Base64: Tệp được đọc và mã hóa thành Base64 ngay lập tức trong trình duyệt của bạn.
  3. Sao chép và sử dụng: Sao chép chuỗi Base64 để nhúng vào HTML, CSS, payload JSON, data URI hoặc bất kỳ định dạng văn bản nào.

Tại sao nên dùng mã hóa tệp Base64?

Tệp nhị phân không thể nhúng trực tiếp vào các định dạng văn bản như HTML, CSS, JSON hoặc XML. Mã hóa Base64 chuyển đổi bất kỳ tệp nhị phân nào thành chuỗi ASCII an toàn có thể nhúng bất cứ nơi nào cho phép văn bản. Điều này cần thiết để nhúng hình ảnh trong HTML (data URI), bao gồm phông chữ trong CSS, gửi tệp qua email hoặc JSON API và tạo tài liệu HTML độc lập.

Tính năng

Câu hỏi thường gặp

Base64 lớn hơn tệp gốc bao nhiêu?

Mã hóa Base64 tăng kích thước tệp khoảng 33%. Hình ảnh 100 KB sẽ trở thành khoảng 133 KB khi mã hóa Base64. Phần tăng thêm này là đánh đổi để có thể nhúng nội dung nhị phân vào văn bản.

Tôi có thể dùng hình ảnh Base64 trong HTML không?

Có. Dùng data URI như <img src="data:image/png;base64,[đoạn-mã]">. Điều này nhúng hình ảnh trực tiếp vào HTML không cần yêu cầu HTTP bên ngoài, nhưng sẽ tăng kích thước trang.

Có giới hạn kích thước tệp không?

Công cụ không có giới hạn bắt buộc, nhưng tệp rất lớn (trên 10 MB) có thể mã hóa chậm và chuỗi kết quả sẽ rất dài. Với tệp lớn, hãy cân nhắc giải pháp phía máy chủ.

Base64 từ đâu đến, và tại sao chúng ta vẫn sử dụng nó

Base64 được thiết kế để mang dữ liệu nhị phân 8 bit qua các đường ống ASCII 7 bit. Đặc tả chính thức đầu tiên là RFC 989 (tháng 2 năm 1987) cho Privacy-Enhanced Mail. RFC 1341 (tháng 6 năm 1992) và đặc biệt là RFC 2045 «MIME Phần Một» (tháng 11 năm 1996) đã làm cho nó trở thành cách chuẩn để đính kèm các tệp nhị phân vào email. Tài liệu chuẩn hiện tại là RFC 4648 (tháng 10 năm 2006), cũng định nghĩa biến thể URL-safe. Cơ chế đơn giản: lấy 3 byte đầu vào (24 bit), chia thành bốn nhóm 6 bit, tra cứu mỗi nhóm trong bảng chữ cái 64 ký tự A-Z a-z 0-9 + /, thêm đệm = để làm cho chiều dài đầu ra là bội số của 4. Kích thước đầu ra chính xác là 4 ÷ 3 ≈ 133 % của đầu vào. Để nhúng trong URL (JWT, OAuth, URL S3 pre-signed), biến thể URL-safe từ RFC 4648 §5 thay thế - cho +_ cho /; đệm thường được bỏ qua.

URL data:: Base64 trong HTML và CSS của bạn

Lược đồ URL data: đã được chỉ định trong RFC 2397 (tháng 8 năm 1998). Định dạng: data:[<mediatype>][;base64],<data>. Ví dụ: <img src="data:image/png;base64,iVBORw0KGgo..."> nhúng một PNG inline mà không có yêu cầu HTTP bổ sung. WHATWG URL Living Standard quản lý cách các trình duyệt hiện đại giải thích các URL này và HTML Living Standard xác nhận rằng chúng hợp lệ ở bất cứ nơi nào URL được cho phép, bao gồm <img>, <link>, <iframe>, và hàm CSS url(). Hướng dẫn thực tế: sử dụng URL data cho các tài sản dưới khoảng 4 KB, nơi tiết kiệm một yêu cầu HTTP đánh bại 33 phần trăm sự cồng kềnh payload. Trên 10 KB, các tham chiếu tệp thông thường với bộ nhớ đệm trình duyệt hầu như luôn thắng, đặc biệt qua đa kênh HTTP/2.

API trình duyệt cung cấp năng lượng cho công cụ này

Trang này sử dụng API FileReader từ HTML Living Standard (ban đầu là W3C File API First Public Working Draft tháng 11 năm 2009; được vận chuyển trong Chrome 13 / Firefox 3.6 / Safari 6 / Internet Explorer 10). FileReader.readAsDataURL(blob) trả về chuỗi đầy đủ data:<mime>;base64,<...> bằng một cuộc gọi. Sự thay thế kế thừa là btoa() (được đặt tên theo lệnh Unix lịch sử «binary-to-ASCII» và một di tích JavaScript DOM Level 0), nhưng nó ném đối với đầu vào không phải Latin-1 trừ khi bạn chuyển mã trước qua UTF-8. Sự thay thế hiện đại là Uint8Array.prototype.toBase64(), được thêm vào ECMAScript 2025 tại TC39 Stage 4. Nó được vận chuyển trong Chrome 132 (tháng 1 năm 2025), Firefox 133 (tháng 11 năm 2024), và Safari 18.2 (tháng 12 năm 2024). Sử dụng API mới cho bất kỳ mã mới nào; dành btoa cho khả năng tương thích với các trình duyệt cũ hơn.

Nơi đầu ra của công cụ này thực sự đi đến

Sai lầm phổ biến

Câu hỏi thường gặp khác

Chi phí kích thước chính xác của Base64 là gì?

Chính xác 4 ÷ 3 ≈ 1.333× đầu vào, cộng với 1-2 byte đệm =. Đầu vào 999 byte trở thành 1332 ký tự Base64 (không đệm vì 999 ÷ 3 = 333 chính xác). Đầu vào 1000 byte trở thành 1336 (một byte đệm). Đối với URL data, thêm byte tiền tố (ví dụ data:image/png;base64, là 23 ký tự).

Làm cách nào để có Base64 URL-safe cho JWT hoặc URL S3 pre-signed?

Lấy đầu ra Base64 chuẩn từ công cụ này và áp dụng hai thay thế: +-, /_. JWT cụ thể loại bỏ đệm = ở cuối; S3 giữ nó. RFC 4648 §5 ghi lại biến thể.

Tôi có thể chuyển đi-về một tệp qua Base64 mà không bị hỏng không?

Có. Base64 là mã hóa không mất dữ liệu. Mã hóa thành Base64 sau đó giải mã trở lại tạo ra bản gốc giống hệt byte. Cách duy nhất để mất dữ liệu là cắt ngắn chuỗi Base64 (ví dụ giới hạn ký tự trong bộ nhớ của bạn) hoặc nhầm lẫn bảng chữ cái chuẩn và URL-safe khi giải mã.

Kích thước tệp tối đa mà công cụ này có thể xử lý là gì?

Không có giới hạn cứng; trong thực tế bộ nhớ trình duyệt là trần. Mã hóa tệp 100 MB yêu cầu khoảng 100 MB đầu vào cộng với 133 MB đầu ra, cộng với chi phí DOM cho chuỗi kết quả, có lẽ tổng cộng 400 MB. Trên di động, mong đợi thất bại trên khoảng 30 MB. Mã hóa chạy trên luồng chính, vì vậy UI đóng băng trong quá trình xử lý; đối với các tệp trên 20 MB, giải pháp phía máy chủ hoặc Web Worker thoải mái hơn.

Tệp của tôi có được tải lên đâu không?

Không. Tệp được đọc bằng API FileReader.readAsDataURL của trình duyệt, chạy hoàn toàn trong trình duyệt của bạn. Không có yêu cầu mạng nào được thực hiện và không có bản sao tệp của bạn được lưu trữ trên bất kỳ máy chủ nào. Mở tab Mạng trong DevTools và thả tệp vào: bạn sẽ thấy không có yêu cầu đi ra trong quá trình mã hóa.

Công cụ liên quan

Trình mã hóa & giải mã Base64 miễn phí trực tuyến Trình Chuyển Đổi Hình Ảnh Sang Base64 Trình giải mã hình ảnh Base64 Bộ mã hóa/giải mã URL miễn phí