tools / base64
base64/
文字、檔案、圖片與 Base64 互轉。UTF-8 編碼,支援 URL 安全格式。
原文
Base64
常見問題
Base64 解碼顯示「包含非 Base64 字元」或「長度不合法」怎麼辦
先檢查內容是否完整、乾淨。可辨識的字元有 A–Z、a–z、0–9、+、/,URL 安全寫法的 - 和 _ 也能辨識,= 只能出現在結尾;空白、換行和開頭的 data:...;base64, 會自動忽略。全形符號、引號、%2B 這類 URL 編碼殘留會出現「包含非 Base64 字元」,「長度不合法」則多半是複製時少了字元。
解碼後顯示「內容不是 UTF-8 文字」或結果是亂碼怎麼辦
表示解出來的位元組不是 UTF-8 文字。常見原因是原文使用了 GBK 等其他編碼,或內容本來就是圖片、壓縮檔、加密資料這類二進位資料。本工具只依 UTF-8 顯示文字,遇到其他編碼不會硬顯示成亂碼。二進位資料可以點選「下載檔案」儲存;GBK 文字需要用支援 GBK 的工具轉換。
為什麼編碼結果和 JS、Python 或命令列算出來的不一樣
最常見的原因是結尾換行或字元編碼不同。本工具把輸入框裡的內容依 UTF-8 原樣編碼,不會去掉頭尾的空白和換行,而命令列的 echo 預設會在結尾多加一個換行,要用 echo -n 才會一致。中文和 emoji 要確認對方也使用 UTF-8:JavaScript 的 btoa 直接處理中文會出錯,Python 要先 encode('utf-8') 再 b64encode。
結尾的 = 可以去掉嗎,「URL 安全」是什麼
解碼時不帶 = 也可以,本工具會自動補上;傳送時能不能省略要看接收方,有些函式庫要求必須保留。「URL 安全」模式會把 + 換成 -、/ 換成 _,並去掉結尾的 =,適合放進網址參數或檔名,JWT 用的就是這種寫法。解碼時 - 和 _ 會自動辨識,不需要另外切換。
檔案轉 Base64 有大小限制嗎
有,單一檔案最大 20 MB,超過會提示檔案過大。輸出預設是帶有 data:image/png;base64, 這類前綴的 Data URL,可以直接放進網頁的圖片網址或 CSS;只要純 Base64 的話,刪掉逗號(含)以前的部分即可。Base64 會讓資料量增加約三分之一,不建議內嵌大圖。
怎麼把 Base64 還原成圖片或檔案
切換到「解碼」,貼上 Base64 或完整的 Data URL。能辨識為圖片(PNG、JPEG、GIF、WebP)的會顯示預覽,文字直接顯示,其他二進位資料只會顯示大小。不論哪種結果,都可以點選「下載檔案」儲存:圖片依格式命名,其他一律存成 decoded.bin,需要的話請自行改回副檔名。
Base64 是加密嗎,可以用來保密嗎
不是。Base64 只是把位元組換成可列印字元的編碼,任何人都能還原,沒有金鑰也沒有保密作用。需要保密請使用 AES 這類真正的加密演算法。
輸入的文字和檔案會上傳嗎
不會。編碼和解碼都在瀏覽器裡完成,選取的檔案也只在本機讀取,不會傳送到伺服器。