Base64 是用普通文本字元表示二進位制資料的方法。圖片、文件和文字最終都可以表示成位元組。當系統需要把位元組放進文本欄位時,Base64 提供一種可逆表示,接收方之後可以解碼還原。
一個簡單例子
Hello 包含五個 ASCII 位元組,編碼後是 SGVsbG8=。解碼會得到原來的五個位元組,再按文本解釋成 Hello。末尾等號屬於編碼結構,不屬於原單詞。
文本: Hello
十六進位制位元組: 48 65 6c 6c 6f
Base64: SGVsbG8=
還原位元組: 48 65 6c 6c 6f
可以先在編碼器裡輸入示例,再把輸出複製到解碼器,比較結果。接著嘗試中文或 emoji。文字必須先通過 UTF-8 等字元編碼轉換成位元組;Base64 本身不定義語言或字元集。
常見應用位置
JSON 中的二進位制欄位、Data URI 中的內嵌圖片,以及某些令牌的可讀部分,都可能使用 Base64。具體含義由外層格式提供。單獨一串 Base64 不會說明原檔名、MIME 型別、字元編碼或可信程度。
Data URI 會增加 data:image/png;base64, 之類字首。它描述載荷,但不屬於 Base64 字母表。某些解碼器理解這個封裝,另一些只接受逗號之後的部分。應選擇對應入口或模式,而不是隨意刪除陌生字元。
三個常見誤解
第一,Base64 不是加密,解碼不需要秘密。第二,它不會縮小檔案,普通輸出通常約大三分之一。第三,解碼結果不一定是文字,圖片位元組顯示成“亂碼”並不意味著解碼失敗。
失敗時檢查原來源、字母表和截斷情況;成功後選擇合適檢視:有效文字用文本,檢查位元組用 Hex,二進位制用檔案下載。規範和測試向量見 RFC 4648。