Base64 編碼/解碼工具
Base64 線上編碼解碼工具,支援文字、圖片與檔案雙向轉換,UTF-8 中文不亂碼。完全在瀏覽器本地處理,內容不會上傳到伺服器,適合處理機密資料。
Base64 編碼是把文字或檔案的位元組,改寫成只用 A–Z、a–z、0–9、+、/ 共 64 個字元(加上補位的 =)的字串;在這頁的「文字」分頁邊打字邊編碼,切到「解碼」貼上 Base64 立刻還原成文字,圖片與任何檔案也能互轉,全部在瀏覽器裡完成、內容不會上傳。
什麼時候會用到 Base64 編碼、解碼
- 網頁內嵌小圖示:把圖片轉成 data:image/png;base64,… 這種寫法,直接貼進 HTML 或 CSS,少一次圖片下載。用「圖片」分頁上傳圖片就會得到含前綴的完整字串。
- API、JSON 裡傳檔案:JSON 只能放文字,PDF、圖片、音檔要先轉成 Base64 才放得進去;「檔案」分頁可以把任何檔案轉成 Base64,也能把收到的 Base64 還原成檔案下載。
- 看懂 JWT 與網址參數:JWT、網址參數裡的內容常用 URL-safe 寫法(- 與 _、沒有 =),貼到「解碼」一樣解得開,不用自己先換字元。
- 檢查電子郵件原始碼、設定檔:信件原始碼或設定檔裡整段看不懂的英數字,常常就是 Base64;貼進來解碼就看得到原文。早期系統寄出的繁體中文信件常是 Big5 編碼,解碼時把文字編碼改成 Big5 即可。
- 確認資料有沒有被改壞:編碼完按「結果放回輸入並反轉」,會把結果當成輸入改做反方向,看能不能還原成一模一樣的原文。
編碼前 → 編碼後實例
| 原文 | UTF-8 位元組 | 標準 Base64 | URL-safe | 不要結尾 = |
|---|---|---|---|---|
| A | 1 | QQ== | ||
| Hello | 5 | SGVsbG8= | SGVsbG8 | SGVsbG8 |
| Hello World | 11 | SGVsbG8gV29ybGQ= | SGVsbG8gV29ybGQ | SGVsbG8gV29ybGQ |
| 你好 | 6 | 5L2g5aW9 | 5L2g5aW9 | 5L2g5aW9 |
| 😀 | 4 | 8J+YgA== | 8J-YgA | 8J+YgA |
| a?>~ | 4 | YT8+fg== | YT8-fg | YT8+fg |
表中結果都是用本工具的編碼程式實際算出來的。中文字在 UTF-8 佔 3 個位元組,所以「你好」6 個位元組剛好編成 8 個字元、不需要補 =;最後兩列可以看出 URL-safe 把 + 換成 -、「不要結尾 =」則只拿掉 =、+ 照舊。
Base64 的原理:為什麼會變長、結尾的 = 是什麼
Base64 每次拿 3 個位元組(24 個位元),切成 4 組、每組 6 個位元,6 個位元剛好有 64 種可能,各對應一個字元,所以編碼後的長度大約是原本的 4/3,也就是多出約三分之一。資料的位元組數不是 3 的倍數時,最後一組會用 = 補齊到 4 個字元:剩 1 個位元組補兩個 =(A → QQ==),剩 2 個位元組補一個 =(AB → QUI=),剛好整除就不用補(ABC → QUJD)。
標準寫法裡的 + 和 / 在網址中有特別意義,= 也常被當成參數分隔,所以放進網址或 JWT 時會改用 URL-safe 寫法:+ 換成 -、/ 換成 _,並省略結尾的 =。有些系統只要求「不要補位的 =」、+ 和 / 照舊,這時勾選「不要結尾 =」就好。
文字分頁怎麼用:打字即轉、貼上自動判斷、Big5
- 打字即轉:不用按按鈕:在輸入框打字或貼上,右邊(手機在下方)立刻出現結果;解碼失敗時結果會清空並說明哪裡不對,不會留著上一次的答案。
- 貼上自動判斷:在「編碼」模式把一整段貼進輸入框時,如果它去掉空白後至少 8 個字元、是合法的 Base64,而且用 UTF-8 解得出看得懂的文字,輸入框上方會出現「改成解碼」按鈕並預覽解出來的前幾個字。工具不會自己切換模式,因為一般英文單字本身也可能是合法的 Base64;太短的內容(例如 abc)也不提示。
- 模式選錯的提醒:反過來,在「解碼」模式貼上含中文等 Base64 不會出現的字時,會顯示解碼失敗並提供「改成編碼」。
- 解碼可選 Big5:解出來的文字預設用 UTF-8 顯示,也可以改選 Big5。用 UTF-8 解出亂碼、但用 Big5 解得通而且是中文時,工具會主動建議改用 Big5。例如 pKSk5Q== 用 Big5 解是「中文」,用 UTF-8 則是亂碼。
- 不要結尾 =:只拿掉補位的 =,+ 和 / 保持原樣;勾選 URL-safe 時本來就不補 =,這個選項會一起勾上。
- 上傳 .txt 解碼:Base64 很長、存在文字檔裡時,按「上傳 .txt 解碼」選檔(最大 10 MB),內容會放進輸入框並直接切到解碼模式。
- 解出來其實是圖片:如果這段 Base64 解出來是 PNG、JPEG 等圖片,會提醒改到「圖片」分頁的「Base64 轉圖片」預覽與下載。
圖片與檔案分頁
- 圖片轉 Base64:上傳 JPG、PNG、GIF、WebP 等圖片(最大 5 MB),自動轉成含 data:image/…;base64, 前綴的字串,按「複製 Base64」即可。
- Base64 轉圖片:貼上 Base64(有沒有 data: 前綴都可以)會先預覽,副檔名依檔案開頭的格式標記判斷,認得 PNG、JPEG、GIF、WebP、BMP、ICO、SVG,不會把 JPEG 存成 .png。
- 檔案轉 Base64:PDF、Word、ZIP、音訊等任何檔案都可以,最大 10 MB;可選要不要 data:…;base64, 前綴。內容很長時畫面只顯示開頭 3,000 個字元,按「複製」或「下載 .txt」拿到的是完整內容。
- Base64 轉檔案:依檔案開頭認出 PDF、Word、Excel、PowerPoint、ZIP、MP3、MP4 等常見格式並給對的副檔名;認不出來時會照前綴標的類型,都沒有就存成 .bin,檔名也可以自己填。
- 點選或拖放:圖片與檔案的上傳框可以點選,也可以直接把檔案拖進框裡。
限制與注意事項
- 編碼一律用 UTF-8:文字編碼時固定轉成 UTF-8 位元組;要產生 Big5 位元組的 Base64 目前做不到,Big5 只提供在解碼。
- 解碼只收 Base64 字元:可以夾空白與換行,但出現其他字元時會指出是第幾個字不對;+ / 與 - _ 兩種寫法不能混在同一段;長度被截斷(例如複製少了一截)會提示。
- 很長的文字建議用檔案分頁:文字分頁每打一個字都會重新計算,內容到好幾 MB 時可能變慢;大檔請改用「檔案」分頁。
- 不是加密:任何人都能把 Base64 解回原文,密碼、個資不要以為編碼後就安全。
- 在瀏覽器裡處理:文字、圖片、檔案的轉換都在你的瀏覽器裡完成,內容不會送到伺服器;網站只記錄使用次數與操作步驟(例如選了哪種檔案、大小落在哪個級距),不記錄內容。
Base64 編碼/解碼工具功能特點
- 文字 Base64 編碼(可選 URL-safe)
- 文字 Base64 解碼(標準與 URL-safe 都能解,沒有 = 也可以)
- 圖片轉 Base64(圖片最大 5MB)
- Base64 轉圖片,副檔名依實際格式
- 任何檔案轉 Base64(PDF、Word、ZIP、音訊…,最大 10MB),也能把 Base64 還原成檔案下載
- 支援 UTF-8 編碼,解出來不是文字時會提醒
- 完全本地處理
- 邊打字邊轉換;編碼模式貼上 Base64 會提示改成解碼
- 解碼可選 UTF-8 或 Big5(舊系統的中文)
- 可單獨選擇去掉結尾的 =
- 上傳 .txt 直接解碼
如何使用Base64 編碼/解碼工具?
- 選「文字」「圖片」或「檔案」分頁
- 輸入文字,或上傳圖片/檔案;要還原就貼上 Base64
- 文字分頁選編碼或解碼,邊打字邊轉換(編碼模式貼上 Base64 會提示改成解碼);圖片與檔案上傳後自動轉好
- 複製結果,或下載圖片/檔案
Base64 編碼/解碼工具常見問題
什麼是 Base64?
Base64 是一種將二進位資料轉換為 ASCII 字串的編碼方式,常用於在文字環境中傳輸二進位資料,如圖片、檔案等。
為什麼要使用 Base64?
常見用途包括:在 HTML/CSS 中嵌入小圖片、API 傳輸二進位資料、郵件附件編碼等。
Base64 編碼後檔案會變大嗎?
是的,Base64 編碼後的資料大約會增加 33% 的大小。這是因為每 3 個位元組的二進位資料會被轉換為 4 個 ASCII 字元。
Base64 編碼安全嗎?
Base64 只是一種編碼方式,不是加密。任何人都可以輕易解碼 Base64 字串,因此不應用於保護敏感資料。如需安全傳輸,請搭配 HTTPS 或其他加密方式。
JWT 或網址裡的 Base64 為什麼別的工具解不開?
那是 URL-safe 寫法:用 - 和 _ 取代 + 和 /,通常也省略結尾的 =。本工具解碼時兩種寫法都接受;編碼時勾選「URL-safe」就會輸出這種寫法。
Base64 解碼要怎麼用?
在「文字」分頁點「解碼」,把 Base64 貼進輸入框,結果會立刻出現在旁邊,不用再按按鈕。如果你忘了切換、在「編碼」模式直接貼上,工具判斷那是 Base64 時會出現「改成解碼」按鈕,按一下就好。
Base64 解碼後出現亂碼怎麼辦?
常見兩種原因:一是原文不是 UTF-8,而是舊系統常用的 Big5,把「解出來的文字編碼」改成 Big5 再看(工具判斷 Big5 解得通時也會主動建議);二是這段 Base64 本來就不是文字,而是圖片、壓縮檔等檔案,請改用「圖片」或「檔案」分頁還原下載。
中文用 Base64 編碼會亂碼嗎?
不會。編碼前會先把文字轉成 UTF-8,中文、日文、emoji 都能正確編碼與還原,例如「你好」編碼後是 5L2g5aW9,解碼回來還是「你好」。要和其他系統對接時,確認對方也是用 UTF-8 解碼即可。
Base64 結尾的 = 可以拿掉嗎?
看對方系統。= 只是補位,拿掉不影響內容,本工具解碼時有沒有 = 都能解;但有些系統一定要有 =、有些規定不能有。需要不帶 = 的結果時,勾選「不要結尾 =」(只拿掉 =)或「URL-safe」(同時把 + / 換成 - _)。
可以直接上傳 .txt 檔解碼嗎?
可以。在「文字」分頁按「上傳 .txt 解碼」選檔,檔案內容會放進輸入框並切到解碼模式,最大 10 MB。如果 .txt 裡是某個檔案(例如 PDF)的 Base64,請改用「檔案」分頁的「Base64 轉檔案」,才能還原成原本的檔案。