Base64 解碼
結果
把 Base64 貼進輸入框就會即時解碼:是文字就直接顯示(UTF-8,中文不會變亂碼);是圖片或其他檔案,會判斷檔案類型、顯示預覽,並提供下載檔案。data: 開頭的 data URI、URL-safe 格式、中間有換行都能直接貼上。要把文字或圖片轉成 Base64,切到上方的「編碼」分頁,或使用 Base64 編碼。所有轉換都在你的瀏覽器裡完成,資料不會上傳。
如何使用 Base64 解碼
- 把 Base64 字串貼到輸入框,下方立刻顯示解碼結果,例如
5L2g5aW9會解成「你好」。 - 如果內容不是正確的 Base64(例如有不允許的字元、長度不對),輸入框下方會顯示錯誤原因。
- 如果解出來是圖片、PDF、ZIP 等檔案,會顯示「二進位資料」和檔案類型,圖片可以直接預覽,按「下載檔案」就能存成檔案。
- 解出文字後,按「複製」複製結果,或按「帶到編碼」重新編碼比對。
怎麼判斷一段文字是不是 Base64
- 只包含
A~Z、a~z、0~9、+、/(URL-safe 版本是-、_),結尾可能有 1~2 個=。 - 去掉換行和空白後,長度通常是 4 的倍數。
- 常見的開頭可以看出內容類型:
| 開頭 | 內容通常是 |
|---|---|
iVBORw0KGgo | PNG 圖片 |
/9j/ | JPEG 圖片 |
R0lGOD | GIF 圖片 |
JVBERi0 | PDF 文件 |
UEsDB | ZIP 壓縮檔(也包含 docx、xlsx) |
eyJ | JSON,例如 JWT 的 header |
Base64 解碼失敗或出現亂碼的原因
- 前面多了其他文字:例如
data:image/png;base64,、Basic這類前綴。本工具會自動去掉 data URI 前綴,其他前綴要手動刪掉。 - 其實不是 Base64:例如十六進位字串、已經加密過的內容,解出來會是看不懂的位元組。
- 內容本來就不是文字:圖片、壓縮檔解碼後本來就是二進位資料,要存成檔案才能開啟,本工具會自動改成提供下載。
- 字元編碼不同:本工具用 UTF-8 解讀文字;如果原本是用 Big5 編碼的中文,解出來會是亂碼。
- 字串被截斷:從 log 或網頁複製時少了一段,長度就會不對。
Base64 轉圖片、檔案
把圖片的 Base64(或 data:image/…;base64, 開頭的 data URI)貼上後,工具會辨識出 PNG、JPEG、GIF、WebP、ICO、BMP 等格式並顯示預覽,按「下載檔案」就會存成對應副檔名的圖片。PDF、ZIP、MP3 等格式也能辨識;辨識不出來的檔案會存成 .bin。
怎麼查看 JWT 的內容
JWT(JSON Web Token)由 3 段以 . 分隔的 Base64URL 組成:header、payload、簽章。把中間那一段 payload 貼進本工具,就能看到裡面的 JSON,例如使用者 ID、到期時間 exp(Unix 時間戳記,可以用 Timestamp 轉換器 換成日期)。
第三段簽章是加密運算的結果,解 碼出來不是文字。另外,JWT 只是編碼不是加密,任何人都能看到 payload,所以不要把機密資料放在 JWT 裡。
各程式語言的 Base64 解碼寫法
| 語言/工具 | Base64 轉文字(UTF-8) |
|---|---|
| JavaScript(Node.js) | Buffer.from(b64, 'base64').toString() |
| JavaScript(瀏覽器) | new TextDecoder().decode(Uint8Array.from(atob(b64), (c) => c.charCodeAt(0))) |
| Python | base64.b64decode(b64).decode() |
| Java | new String(Base64.getDecoder().decode(b64), StandardCharsets.UTF_8) |
| C# | Encoding.UTF8.GetString(Convert.FromBase64String(b64)) |
| PHP | base64_decode($b64) |
| Linux/macOS | base64 -d file.txt |
解 URL-safe 格式時,Python 用 base64.urlsafe_b64decode()、Java 用 Base64.getUrlDecoder()、Node.js 用 Buffer.from(b64, 'base64url');缺少結尾 = 的字串,有些語言要先補回 = 才能解碼。