小资源的编码与还原

Data URI 生成器

从文本、文件或 SVG 生成完整的 data: 地址,也可解析已有 URI,核对内容后下载原始字节。

Data URI 生成器

输入

结果

文本、文件和 URI 内容仅在当前浏览器处理,不发送,也不写入地址栏。

选项与元数据

填写不带参数的类型/子类型。文本使用 UTF-8;文件字节保持不变。MIME 是声明,不是格式检测。

上限:原始或还原数据 600,000 字节;URI 1,900,000 个字符;头部 1,024 个字符。

MIME:text/plain;charset=utf-8 · 字符集:utf-8 · 编码:Base64

完整 URI 长度:Base64 65;百分号编码 80

20 字节 · URI 共 65 个字符

内联图标突然不显示,问题可能只是未转义的井号、少了逗号,或编码标记不对。Data URI 生成器把封装信息和实际内容分开呈现,便于确认问题出在地址格式,还是资源本身。

为什么使用 Data URI 生成器

用实际长度选择编码

Data URI 生成器为同一份数据计算两种完整地址的长度。SVG 中的 ASCII 文本可能适合百分号编码,但标点和中文会改变长度差距。直接比较数字,避免把“百分号一定更短”当成规则。

同一份 SVG 源码分成两条编码路径,各生成一条 URI,并展示各自的长度标尺。

从地址还原文件,不必打开内容

Data URI 解析先识别封装,再还原字节。可读文字按源码显示,二进制内容用十六进制检查;下载获得完整原始字节。即使类型声明为 HTML 或 SVG,也不会为了预览而执行内容。

一条 URI 被拆成类型与编码信息,以及包含原始彩色字节块的文件。

嵌入之前先核对这些细节

01

SVG 入口是编码预设

切到 SVG 会使用 image/svg+xml 和默认百分号编码,也可手动选择 Base64 比较长度。它不会改变引号、颜色或 XML 排版,也不会替你补全 SVG 结构。需要优化图形时应在编码之前完成。

02

留意自动转换和过期状态

停止修改约 350 毫秒后自动更新。关闭自动转换后,可用按钮或 Ctrl/Cmd + Enter 执行。输入、MIME 或编码一变,旧结果立即禁止导出;不同入口各自保留输入,切换不会覆盖原文。

03

先看预览类型,再选择导出

解析区会注明显示的是文本还是十六进制,复制结果按该表示输出;下载原始字节始终保存完整资源。示例、清空与文件载入会先显示替换数量,应用后可撤销一次,同时恢复输入和结果。

封装信息和内容分别检查

文本转 Data URI 与文件封装

文本统一编码为 UTF-8 并写入字符集声明。文件使用浏览器提供的 MIME;没有类型时默认 application/octet-stream,也可手动覆盖。改变类型声明不会把 PNG 转成 JPEG,内容字节保持原样。

按字节执行百分号编码

%FF 能表示一个字节,不要求它单独构成有效文字;加号也不会变成空格。生成时仅保留未保留字符,其他字节转为 %XX,包括井号、括号、引号、空白以及中文的 UTF-8 字节。

识别头部参数和编码标记

解析使用第一个逗号分隔头部与载荷,识别省略的 MIME、charset、其他不重复参数及末尾的 base64 标记。参数值可使用百分号转义;错误转义、重复参数或标记位置错误都会给出提示。

完整计数和分段展示

同时查看原始或还原数据的字节数、完整 URI 的字符数。结果先显示 20,000 个字符,仍可继续展开;复制和下载始终使用全部当前结果,不会把屏幕上的截断预览误当成完整输出。

输入格式与处理边界

严格解析,不自动修复地址
必须有 data: 前缀和分隔逗号。标准 Base64 允许正确填充或完全不填充,拒绝部分填充、非零末尾未使用位及 Base64URL。原始空白、坏转义和原始井号会报错;数据井号必须写成 %23。
MIME 和参数各有约束
生成时填写最长 127 个 ASCII 字符的纯类型/子类型,SVG 类型固定。解析头部最长 1,024 个字符,参数名必须是唯一 token,值可为转义后的 ASCII;不会合并重复 charset 或移动 base64 标记。
字符集不会被悄悄转换
支持 UTF-8 与 ASCII 声明;有 MIME 但没有 charset 时尝试 UTF-8,省略 MIME 时默认 US-ASCII。其他字符集、无效文字字节或二进制控制字节显示为十六进制,下载内容不经过转码。
针对单个小资源
原始文件和还原结果最多 600,000 字节,URI 最多 1,900,000 个字符。32,768 字符是嵌入提醒阈值,不是浏览器统一上限。不支持批量、远程地址抓取或压缩;大资源可使用独立文件。
SVG 转 Data URI 不等于安全净化
SVG 模式仅编码源码,不优化、不改色、不删除脚本,也不转换图片格式。工具不会渲染 HTML、SVG、图片或 iframe。类型声明不能证明真实格式,解析成功也不表示下载的文件可以安全打开。
宿主环境需要单独验证
输出仅为 URI,不附 CSS、HTML 或 Markdown 包装。目标网页的内容安全策略、邮件客户端和缓存行为不在检测范围内。地址本身包含完整内容,不提供加密,也不能作为独立资源单独缓存。

Data URI 生成器常见问题

如何把文本或文件生成 Data URI?

选择文本或文件入口,核对 MIME 与编码方式即可生成完整地址。文本会写入 UTF-8 声明;文件按原始字节处理。文件载入先进入替换预览,点击应用后才替换当前资源,自动转换开启时随即更新。

生成的 Data URI 可以放进 CSS 或 HTML 吗?

通常可用于允许 data: 资源的图片地址或样式属性,但具体取决于目标环境和媒体类型。这里只提供 URI,需自行添加正确的 CSS 或 HTML 包装,并检查内容安全策略;生成成功不代表所有宿主都会接受。

Data URI 应该使用哪种媒体类型?

类型应与实际资源匹配,例如文本用 text/plain、SVG 用 image/svg+xml、PNG 用 image/png。未知二进制可用 application/octet-stream。MIME 只是声明,改一个字符串不会把内容转换成另一种格式。

解析器能判断是否使用了 Base64 吗?

可以,依据头部末尾是否有 ;base64,而不是根据内容长得像不像 Base64 来猜测。没有标记就按百分号字节处理。标记放错位置、重复参数或错误填充都会报错,避免把歧义地址当作有效数据。

什么情况下会显示可读文本?

声明为 UTF-8 或 ASCII 且字节有效时可以显示;有 MIME 但无字符集时尝试 UTF-8。其他字符集、非法文本字节和二进制控制内容改用十六进制显示。下载原始字节仍可还原文件,不会插入替代字符。

还遇到了其他 URI 边界?

检查下一个内联资源

用 Data URI 生成器比较编码长度,检查头部,并核对还原后的字节,再把小资源嵌入项目。