SVG 转 Base64
把 SVG 代码或文件转换为 Base64 或 URL 编码的数据 URI,并给出 CSS 背景和 HTML img 代码片段及各自的大小。在浏览器中处理。
把小的 SVG 图标内联为数据 URI,可以省去一次 HTTP 请求,让样式表或组件自成一体。本工具把 SVG 文件或粘贴的 SVG 代码转换为两种数据 URI:保持标记可读、通常更小的 URL 编码,以及 Base64,并提供可直接粘贴的 CSS background-image 和 HTML img 代码片段及各自的大小。它会检查代码确实是 SVG,并补上缺失的 xmlns,没有它数据 URI 就无法显示。
使用方法
- 拖入 .svg 文件或粘贴 SVG 代码。
- 保持“轻度精简”开启,以去掉 XML 声明、注释和多余空白。
- 选择 CSS 和 HTML 代码片段所用的数据 URI 类型。
- 复制您需要的结果;大小会显示哪一种更短。
计算公式
URL 编码:data:image/svg+xml, + SVG(当 SVG 中没有 ' 时把 " 改为 '),只对 %、#、<、>、{、}、&、"、\、^、`、|、控制字符和非 ASCII 字符做百分号编码(UTF-8)。Base64:data:image/svg+xml;base64, + UTF-8 字节的 Base64(每 3 字节对应 4 个字符)。
浏览器在带引号的 url("…") 或 src="…" 中接受未转义的空格、另一种引号、= 和 /,所以只对必须的字符做 URL 编码就能保持简短。# 必须始终转义(否则会开始一个片段标识),% 也是如此。精简会保留一个空格,所以 <text> 的内容不会被改动。
示例
那份 163 字节的测试 SVG 变成 URL 编码的数据 URI 时是 202 个字符(两个 # 变成 %23,七个 < 和 > 变成 %3C 或 %3E),而 Base64 数据 URI 是 246 个字符:4 × ⌈163 ÷ 3⌉ = 220 个 Base64 字符,再加 26 个字符的前缀。
常见问题
该用 Base64 还是 URL 编码?
URL 编码通常更小,gzip 压缩效果更好,而且仍可阅读。当某个工具坚持要求 Base64,或在不允许空格的 srcset 中,请使用 Base64。
为什么我的数据 URI 不显示?
通常是因为 SVG 缺少 xmlns="http://www.w3.org/2000/svg"(本工具会补上),或者某个 # 没有转义。SVG 引用的外部图片或字体在数据 URI 中永远不会加载。
可以用 CSS 改变图标颜色吗?
用 background-image 不行:SVG 是独立的图片。请在编码前修改 SVG 中的 fill,或者使用同一个数据 URI 的 CSS mask-image 并设置 background-color。
我的 SVG 会被上传吗?
不会,编码在您的浏览器中进行。
最后更新:
包含这些输入的页面地址: https://kakao.mobile/zh/tools/svg-to-base64-tool/
引用此工具
kakaoCalc. (2026, November 8). SVG 转 Base64. https://kakao.mobile/zh/tools/svg-to-base64-tool/
“SVG 转 Base64.” kakaoCalc, 8 Nov. 2026, kakao.mobile/zh/tools/svg-to-base64-tool/.