SVG 轉 Base64 轉換工具
將 Unicode SVG 源資料編碼為 UTF-8 Base64 資料 URL 或解碼該精確資料 URL 迴文字。
隱私權:你的檔案不會離開裝置,所有處理均在瀏覽器本機完成。
使用方式
- 1.選擇編碼或解碼,並貼上完整的 SVG 文件或相符的 Base64 資料 URL。
- 2.執行轉換並檢視完整文字結果。
- 3.複製結果,並在確切的受信目的地測試,同時符合大小與安全策略。
關於SVG 轉 Base64 轉換工具
SVG 至 Base64 轉換器將完整的 SVG 文字文件轉換為 data:image/svg+xml;base64 資料 URL,並將該精確資料 URL 格式解碼回 UTF-8 SVG 文字。貼上包含 svg 根節點的源資料,選擇編碼並複製結果。反向轉換時,貼上匹配的 Base64 資料 URL 並恢復原始 Unicode 文件。此工具在進行 ASCII、帶重音的文字、CJK 字元、表情符號、屬性、標記與換行符號轉換為 UTF-8 位元組前,會將其視為 Base64 編碼處理。
Base64 是根據 RFC 4648 定義的二進位到文字表示法,不進行資料壓縮。四個 Base64 字元通常代表三個原始位元組,因此編碼輸出通常會比原始資料大約三分之一,再加上 data URL 標頭。SVG 在作為獨立資源透過 HTTP 服務時,常能有效壓縮;若將大型 Base64 字串內嵌,反而可能導致 HTML 或 CSS 增大、無法獨立快取,且增加除錯困難度。請實際測試傳輸結果,而非假設內嵌資料較快。
Unicode 必須先轉換為位元組,再進行 Base64 編碼。直接將 JavaScript 字串套用僅支援拉丁-1 的瀏覽器函式,可能會導致非-ASCII 字元失敗或損毀。此實現使用 TextEncoder 進行 UTF-8 轉換,處理位元組區塊以避免過長的引數清單,然後套用 Base64。解碼時會反向執行這些步驟,並進行致命的 UTF-8 驗證,因此錯誤的位元組序列會產生錯誤而非取代字元與虛假成功的文件。
輸入檢查需要完整的 svg 根節點與結尾標籤,並在去除可選的位元組順序標記與周遭空白字元後進行。這是一個刻意設定的結構邊界,並非完整的 XML 或 SVG 驗證器。名稱空間、元素內容、屬性、參考、尺寸、路徑、樣式與可存取性均不會被修復。即使語法上被接受的字串,仍可能為無效的 SVG、在不同瀏覽器中呈現不同樣貌,或參考無法取得的資源。請在實際消費者中驗證文件。
這個工具從來不會預覽或執行提供的 SVG。這是一個安全性邊界:SVG 可能包含指令碼、事件處理、外來內容、連結、外部資源、過濾器及其他依嵌入方式與適用的內容安全策略而有所不同之活躍行為。Base64 編碼不會清理或使活躍內容值得信賴。請勿在 iframe、object、圖片情境、CSS 屬性或 DOM 中放置未受信任的輸出,除非有維護過濾器與針對該情境設計的嵌入策略。
解碼器僅接受精確的 data:image/svg+xml;base64, 字首。它不會猜測純文字 Base64、URL 編碼的 SVG、其他媒體型別引數、任意資料 或空白字元標準化的載荷。窄幅的協議可防止誤解非相關資料,並確保往返行為可測試。500,000 字元的來源限制會限制記憶體與主執行緒的工作量,但產生的資料 URL 仍可能大到超出瀏覽器、資料庫、標頭、QR 碼或建置工具的限制。
八個外部元件用來固定 RFC 4648 的輸出,用於 ASCII 標籤、兩位元組、三位元組、四位元組 UTF-8 字元、屬性、換行、巢狀標籤與名稱空間文字。額外的測試會進行多語言 SVG 的往返測試,並拒絕錯誤的字首、格式錯誤的檔案、格式錯誤的 Base64 資料與無效的 UTF-8。轉換與剪貼簿存取皆留在目前的瀏覽器分頁中;不會上傳任何 SVG 或產生的 URL 資料。
為確保可靠使用,僅編碼你擁有或信任的內容,複製完整的資料 URL,並在實際目的地以該網站的 CSP 與大小預算進行測試。較大型可重複使用的資源,建議使用獨立快取的 SVG 檔案。若必須顯示不可信的 SVG,請使用維護的清理流程與嚴格的服務標頭;僅編碼本身無法提供保護。
方法與來源
驗證一個有界完整的 SVG 根文字文件,使用 TextEncoder 將 Unicode 轉換為 UTF-8,將有界區塊的位元組以 Base64 編碼,並以致命錯誤 UTF-8 驗證解碼。它從不渲染或清理輸入;八個 RFC 4648/UTF-8 範例固定輸出。
常見問題
- Base64 編碼會清理 SVG 嗎?
- 不會。編碼僅改變表示方式。指令碼、事件處理、外部引用及其他主動內容在解碼或嵌入時仍可能潛在危險。
- 為何 Base64 輸出大於 SVG 原始碼?
- Base64 通常會將位元組擴大約三分之一,再加上 data URL 標頭。這不是壓縮,且可能降低快取效率。
- 為何解碼器需要精確的 data URL 字首?
- 狹窄的輸入合約可防止與其他 Base64 或媒體型別被誤解為 SVG,並確保 UTF-8 往返轉換結果可預測。
相關工具
- SVG 到 PNG 轉換器在瀏覽器中將 SVG 向量圖形轉換為清晰的 PNG 圖片 — 設定解析度、選擇透明或白色背景,並立即下載,不會上傳任何內容。
- SVG 轉 JPG 轉換工具將安全且自包含的 SVG 檔案轉換為不透明的 JPG 檔案,並在本機進行,並具備明確的尺寸與品質控制。
- Base64 編碼 / 解碼立即在瀏覽器中編碼或解碼 Base64,完整支援 UTF-8 — 表情符號和重音字元都能使用。
- 圖片轉 Base64 工具將經驗證的 PNG、JPEG、GIF 或 WebP 檔案轉換為純文字 Base64 或精確的圖片資料 URL,且不會上傳任何內容。
- ANSI 色彩碼產生器建立並複製原始 SGR 逸出序列,並搜尋標準 8 色加亮 8 色的終端機色碼。
- ASCII 表格查詢所有標準 7 位 ASCII 編碼的精確十進位、十六進位、八進位與二進位值。
開發者工具 使用指南
查看全部- How to Convert SVG Image to Base64 Data URLs (英文原文)
- Convert .properties Files to JSON Online (英文原文)
- Random MAC Address On or Off: A Developer Guide (英文原文)
- Generate a JWT for Testing: HS256 Tokens in Your Browser (英文原文)
- How to Decode JWT Tokens in Angular Apps (英文原文)
- JSON Schema to Zod: Inference Limits and a Safer Path (英文原文)
- Rust: Convert a Struct to a JSON String With serde (英文原文)
- How to Convert JSON to Excel in Python (英文原文)
- JSON to CSV Alternative With Built-In Formula Protection (英文原文)
- Format a JSON File in VS Code and in Your Browser (英文原文)
- Local JavaScript Playground Alternative for Safe Testing (英文原文)
- How to Convert IPv4 to a 32-Bit Integer for Storage (英文原文)
- Convert Decimal Numbers to IEEE 754 Floating Point Format (英文原文)
- HTTP Status Codes Alternative: A Registry-First Lookup (英文原文)
- How to Edit HTML in a Browser Using a Sandboxed Preview (英文原文)
- Format HTML Code from Notepad++ Without Plugins (英文原文)
- Why Is Hello World Used in Programming: A Practical Guide (英文原文)
- How to Make Flexbox Items Fill the Container Height (英文原文)
- File Signatures List Alternative: Twelve Verified Prefixes (英文原文)
- How to Open Excel Files Online in a Browser Preview (英文原文)