Base64 格式化
免費線上格式化 Base64 字串,支援自訂字元寬度(64/76/80/100 字元)和縮排(0/2/4 空格)分行顯示,適合長串閱讀、截圖對比和文件排版。僅修改顯示格式,不更動原始 Base64 編碼資料。
相關推薦
什麼是 Base64 格式化?
Base64 格式化是在顯示層面將一長串 Base64 字串按指定字元寬度(如 64/76/80/100)拆成多行展示,並支援按 0/2/4 空格縮排。格式化的結果在視覺上更易讀、更適合截圖、列印和文件排版,但**不改變原始位元組內容**——去除所有換行和縮排即可還原為原始單行 Base64。
**為什麼需要格式化?** RFC 4648 標準 Base64 沒有強制換行,但實際使用中:①長 Base64 字串在工單系統、聊天工具、Markdown 文件中容易溢出導致橫向捲動;②MIME 協定(RFC 2045)規定每 76 字元折行(用於郵件附件);③程式碼審查時多行展示更容易定位異常字元;④文件截圖排版需要美觀的對齊。
**常見使用場景:** ①技術文件排版:在 Markdown / Confluence / Notion 中嵌入長 Base64;②截圖對比:在 PR / Bug 報告截圖中方便團隊查看完整 Base64 字串;③人工審查:在 Code Review 中快速定位非法字元(如換行、空格混入);④郵件附件:按 MIME 標準 76 字元折行後方便 SMTP 傳輸;⑤大屏日誌展示:在監控大屏上按多行顯示便於查看。
**與 MIME Base64 的區別:** MIME Base64(RFC 2045)固定每 76 字元折行,是協定級強制要求。本工具的格式化更靈活,支援 64/76/80/100 字元多種寬度 + 縮排 0/2/4 空格,適合各種文件場景。MIME 折行可透過選擇 76 字元寬度重現。
**格式化的安全性:** 工具僅在顯示層面插入換行和縮排字元,**絕不修改原始 Base64 的位元組內容**。格式化結果去除所有空白字元後可還原為完全相同的原始 Base64 字串。解碼時大多數 Base64 解碼器會自動忽略空白字元,所以格式化結果可直接解碼使用。
適用場景
- 將超長 Base64 字串按自訂寬度分行便於閱讀和截圖
- 格式化 Base64 用於技術文件、工單記錄或郵件展示
- 列印或歸檔時的 Base64 排版最佳化
- 配合拆分、合併工具進行 Base64 結構調整
- 按 MIME 標準(76 字元)折行 Base64 用於郵件附件
- 程式碼審查時多行展示 Base64 便於定位異常字元
- 將 Base64 嵌入 Markdown 時按 4 空格縮排保持程式碼風格
- 大屏日誌展示:監控系統中多行顯示長 Base64 payload
使用方法
- 貼上需要格式化的 Base64 字串(可含或不含換行)
- 選擇每行字元寬度:64 / 76 / 80 / 100
- 選擇縮排:0 / 2 / 4 空格
- 工具即時按指定寬度和縮排格式化展示
- 複製格式化結果用於文件,或點擊還原去除換行
功能特點
- 自訂字元寬度:支援 64 / 76 / 80 / 100 字元每行,靈活適配不同排版需求
- 可設定縮排:支援 0 / 2 / 4 空格縮排,便於在程式碼區塊或 Markdown 中對齊
- 純展示最佳化:僅調整顯示方式,不改變原始 Base64 編碼資料
- 即時格式化:200ms 防抖,輸入即格式化,無延遲
- 一鍵還原:去除所有換行和縮排,恢復為單行 Base64
- 字元和行數統計:即時顯示輸入字元數、輸出總行數
- 一鍵複製:格式化結果可直接複製到剪貼簿,用於文件或工單記錄
- 瀏覽器本地零上傳:所有格式化在瀏覽器內完成,不經過任何伺服器
程式碼範例
JavaScript:手動實作 Base64 格式化(理解原理)
javascript理解 Base64 格式化的底層邏輯——按字元寬度切分並插入換行符。
// Base64 格式化函式(與本工具邏輯一致)
function formatBase64(input, lineLength = 76, indent = 0) {
// 1. 去除所有空白字元
const clean = input.replace(/\s/g, '');
if (!clean) return '';
// 2. 按指定寬度切分
const lines = [];
for (let i = 0; i < clean.length; i += lineLength) {
const line = clean.slice(i, i + lineLength);
lines.push(' '.repeat(indent) + line);
}
// 3. 用換行符連接
return lines.join('\n');
}
// 使用範例
const b64 = 'a'.repeat(200);
console.log(formatBase64(b64, 76, 0));
// 輸出:每行 76 字元的 Base64
// 去格式化(用於解碼或傳輸)
function unformatBase64(input) {
return input.replace(/\s/g, '');
}
console.log(unformatBase64(formatBase64(b64, 76, 0)).length); // 200Python:Base64 格式化 + MIME 折行
pythonPython 實作按 76 字元折行(MIME 標準)並可指定縮排。
import textwrap
def format_base64(b64_str: str, width: int = 76, indent: int = 0) -> str:
"""格式化 Base64 字串為多行"""
# 去除所有空白
clean = ''.join(b64_str.split())
if not clean:
return ''
# 使用 textwrap 按寬度切分
lines = textwrap.wrap(clean, width=width)
# 加入縮排
if indent > 0:
lines = [' ' * indent + line for line in lines]
return '\n'.join(lines)
# 使用範例
b64 = 'aGVsbG8gd29ybGQ=' * 10
print(format_base64(b64, 76, 0))
# 重現 MIME Base64 (RFC 2045)
mime_format = format_base64(b64, 76)
print(f'MIME Base64 行數: {len(mime_format.splitlines())}')
# 還原為單行
single_line = b64.replace('\n', '').replace(' ', '')
print(f'單行長度: {len(single_line)}')命令列:fold 工具 + MIME Base64 折行
bashLinux/macOS 系統內建的 fold 工具可在命令列快速實作 Base64 格式化。
# 1. 輸入 Base64 → 按 76 字元折行(MIME 標準)
echo "aGVsbG8gd29ybGQ=" | base64 | base64 | fold -w 76
# 2. 格式化長 Base64 檔案 → 輸出到新檔案
fold -w 76 encoded.txt > formatted.txt
# 3. 按 64 字元折行(緊湊展示)
fold -w 64 encoded.txt > compact.txt
# 4. 同時去除所有換行(去格式化)
tr -d '\n' < formatted.txt > single-line.txt
# 5. 驗證:Base64 長度 + 行數
wc -c encoded.txt | awk '{print "字元數:", $1}'
wc -l formatted.txt | awk '{print "行數:", $1}'
# 6. 結合 openssl 實作完整 base64 編碼 + 格式化
echo "Hello 世界" | openssl base64 -A | fold -w 76 > hello.b64.txt
cat hello.b64.txt常見問題
格式化會改變 Base64 的實際內容嗎?
不會。格式化僅在顯示層面插入換行符和縮排空格,不改變編碼本身。將格式化後的內容去掉所有空白字元即可還原為原始單行 Base64。所有 Base64 解碼器(瀏覽器原生 atob / Node.js Buffer / Python base64)都會自動忽略空白字元,所以格式化結果可直接用於解碼。
Base64 格式化和 MIME Base64 有什麼區別?
MIME Base64 嚴格按 RFC 2045 的 76 字元寬度折行,是郵件附件傳輸的標準。本工具的格式化更靈活,允許自訂 64/76/80/100 字元寬度 + 縮排 0/2/4 空格,更適合文件、截圖等不同展示需求。選擇 76 字元寬度即可重現 MIME 折行。
適合日誌查看和工單記錄嗎?
非常適合。長 Base64 字串在工單系統(Jira / Zendesk)、聊天工具(Slack / Teams)或 Markdown 文件中容易溢出導致橫向捲動。格式化後多行展示清晰易讀,可直接貼到工單附件或聊天視窗。
格式化後可以直接用於解碼嗎?
可以。所有主流 Base64 解碼器都會自動忽略換行和空格。如果遇到問題(如舊版 OpenSSL),可先點擊「還原」按鈕去除換行再解碼。
為什麼有 64 / 76 / 80 / 100 多種字元寬度?
64 字元適合緊湊文件(如 CLI 終端、Markdown 表格);76 字元是 MIME 郵件標準;80 字元是傳統終端寬度;100 字元適合寬螢幕編輯器和現代文件。每種寬度有對應的最佳使用場景。
縮排有什麼用?
縮排(0/2/4 空格)讓 Base64 在程式碼區塊或 Markdown 中保持對齊:0 空格適合純文字,2 空格適合 JS/Python 程式碼風格,4 空格適合 Markdown 巢狀程式碼區塊。
格式化會增加 Base64 的字元數嗎?
會增加約 1-3%(換行符 + 縮排空格),但不影響解碼結果。如果傳輸對大小敏感(如 URL 參數),建議先用「還原」功能恢復為單行。
支援 UTF-8 / 中文嗎?
本工具不直接處理字元集——只格式化 Base64 字串本身。如果 Base64 中包含中文(如經過 UTF-8 編碼後再編碼的 Base64),格式化不會影響其編碼正確性。
適合大檔案格式化嗎?
支援。工具即時格式化,瀏覽器對 1MB 以內的 Base64 字串無壓力。超過 10MB 可能導致介面卡頓,建議分塊格式化。
格式化後體積變大,可以壓縮嗎?
格式化增加的只是換行和縮排,對壓縮演算法友善。可用 gzip / Brotli 壓縮,或用 Base64 Stats 工具查看具體增量。
故障排查
格式化後某些 Base64 字元遺失
可能來源 Base64 包含非法字元(如換行符未正確處理)。先用 Base64 Clean 工具清洗後再格式化。
格式化結果與原始位元組不一致
這是不可能的——格式化僅插入空白字元,不修改位元組內容。如果發現不一致,說明來源 Base64 已被錯誤處理(如重複格式化導致空白重複插入)。
長字串格式化後介面卡頓
超過 10MB 的 Base64 字串可能導致瀏覽器卡頓。建議:①分塊處理;②先用 base64-clean 去除多餘空白;③減小寬度(如 64 字元)減少每行渲染負擔。
術語表
- Base64 格式化
- 在顯示層面將 Base64 字串按指定寬度拆成多行,僅影響視覺呈現,不改變編碼本身。
- MIME Base64
- RFC 2045 規定的每 76 字元折行的 Base64 變體,主要用於電子郵件附件傳輸。
- 字元寬度 (line length)
- 每行顯示的 Base64 字元數。常用值:64(緊湊)、76(MIME 標準)、80(標準列印)、100(寬螢幕)。
- 縮排 (indent)
- 每行行首的空格數,常見值:0(無縮排)、2(程式碼風格)、4(Markdown 程式碼區塊)。
- 空白字元 (whitespace)
- Base64 字串中可能存在的空格、Tab、換行符等。格式化會先去除這些字元,再按指定寬度重新插入。
- 去格式化 (unformat)
- 將格式化(多行 + 縮排)的 Base64 還原為單行無空白的形式,用於解碼或傳輸。
4 種字元寬度對比表
不同字元寬度適合不同展示場景,可根據目標環境選擇。
| 字元寬度 | 典型場景 | 對應標準 | 範例 |
|---|---|---|---|
64 字元 | CLI 終端、Markdown 表格 | 緊湊展示 | 小螢幕 / 高密度 |
76 字元 | 郵件附件傳輸 | RFC 2045 MIME | 郵件 / SMTP |
80 字元 | 傳統終端列印 | 傳統 Unix 終端 | 文件列印 |
100 字元 | 現代編輯器 / 寬螢幕 | 現代 UI 規範 | IDE / 文件 |
3 種縮排風格對比表
不同縮排風格匹配不同程式碼規範,按團隊/專案習慣選擇。
| 縮排 | 程式碼風格 | 範例(Base64 第 1 行) |
|---|---|---|
0 空格 | 無縮排(純文字) | QUJD... |
2 空格 | JS / Python 規範 | QUJD... |
4 空格 | Markdown 巢狀 / Java 規範 | QUJD... |
Authoritative References
- 安全字串比較
- 二進位轉換
- 凱薩密碼
- 摩斯密碼
- 十六進位轉換
- 影片轉 Base64
- Base64 轉影片
- 圖片轉 Base64
- Base64 轉圖片
- 文字轉 Base64
- Base64 轉文字
- 檔案雜湊校驗
- 檔案轉 Base64
- Base64 轉檔案
- 音訊轉Base64
- Base64轉音訊
- AES 加密解密
- DES 加密解密
- Base32 編碼解碼
- Base58 編碼解碼
- Base64 編碼
- Base64 解碼
- Base64 比較
- Base64 拆分
- Base64 多行合併
- Base64 格式化
- Base64 格式檢查
- Base64 批次編碼
- Base64 批次解碼
- Base64 清理
- Base64 填充處理
- Base64 長度統計
- Base64 轉十六進位
- Base64 DataURL 轉換
- Base64-Hex 互轉
- Base85 編解碼器
- HMAC 生成與驗證
- PBKDF2 金鑰派生
- MD5 雜湊
- SHA-256 雜湊
- SHA1 雜湊
- SHA512 雜湊
- JWT 工具
- HTML 實體編碼解碼
- Unicode 跳脫
- URL 編碼
- URL Safe Base64
- MIME Base64
- Java 混淆
- JS 混淆
- PHP 混淆
- Python 混淆