檔案與Base64互轉工具(支援data URI)

將圖片、PDF等任意檔案轉換為Base64字串或data URI,也可以將Base64字串或data URI還原為檔案並下載。所有轉換均在瀏覽器內完成,檔案不會上傳到伺服器。

使用小貼士

  • 在“檔案 → Base64”模式下可上傳任意型別的檔案(圖片、PDF、音訊等),並可分別複製data URI形式和普通Base64字串。
  • 在“Base64 → 檔案”模式下,貼上以data:開頭的完整data URI會自動識別MIME型別;如果只是普通的Base64字串,請手動選擇MIME型別。
  • 所有轉換處理都在瀏覽器內的JavaScript中完成,上傳的檔案或Base64字串絕不會被發送到伺服器,即使是機密檔案也可放心使用。
  • 如果想在CSS或HTML中嵌入小圖示,可以直接將data URI形式的輸出貼上到background-image: url(...)<img>標籤的src中。
  • 由於Base64編碼會使檔案體積增大約33%,轉換數十MB以上的大檔案時瀏覽器可能會出現卡頓。

常見問題

Base64是一種將二進位制資料(圖片、音訊、執行檔等任意格式的資料)僅用A~Z、a~z、0~9、+、/這64種可列印ASCII字元表示的編碼方式。它不是加密,只是一種讓資料能以安全的文本形式傳輸的轉換方式。

data URI是將檔案內容以Base64編碼的字串形式直接嵌入URL中的一種格式,例如data:image/png;base64,iVBOR...。由於其中包含MIME型別資訊,可以直接填入<img>標籤的src屬性或CSS的background-image中顯示圖片。

不會。本工具的轉換處理(使用FileReader和Blob進行編碼解碼)完全在您瀏覽器內的JavaScript中完成,檔案內容或Base64字串絕不會被發送到伺服器。

可以。如果貼上的內容不是以data:開頭的完整data URI格式,會顯示MIME型別選擇欄,請手動選擇原始檔案格式(圖片、PDF、文本等)後再下載。

Base64會將8位為單位的二進位制資料重新編碼為6位為單位的字元,因此編碼後的資料量約為原來的4/3倍,即增大約33%。這是Base64編碼機制本身無法避免的特性。
ツールくん

閒話 ― 為什麼Base64會讓檔案體積增大33%

Base64編碼誕生的背景,是電子郵件、JSON、URL等許多傳輸通道“只能安全處理可列印的ASCII字元”這一限制。如果將圖片、執行檔等任意二進位制資料原樣傳送,可能會因混入控制字元而損壞,於是人們設計出僅用A~Z、a~z、0~9、+、/這64種可列印字元來表示二進位制資料的Base64方式。

Base64會將3位元組(24位)的二進位制資料按每6位切分為4份,分別對映為4個Base64字元。由於要把以8位為單位的二進位制資料重新塞進以6位為單位的字元中,編碼後的資料量約為原來的4/3倍,也就是增大約33%。這是以文本形式安全傳輸所必須付出的代價。

這一特性的巧妙應用之一,就是在HTML、CSS中以data:image/png;base64,...的形式直接嵌入小圖片的data URI。這樣做可以避免為圖示等小型資源額外發起HTTP請求,是加快頁面載入速度的常用手段。不過由於體積增加約33%且無法利用瀏覽器快取,並不適合用於嵌入較大的圖片檔案。