Content-Disposition 解析与生成
检查有序文件名参数,或生成 ASCII 兼容名与 UTF-8 filename*
本地文本解析,上限 1 MiB;文件名只是建议值,不是安全路径或浏览器接收保证。输入不保存。
解析或生成结果会显示在这里。
工具说明
Content-Disposition 解析与生成工具检查单个 HTTP 字段值,可带 Content-Disposition: 前缀。解析器保留参数顺序与拼写,处理引号字符串内部的分号,并按 HTTP quoted-pair 规则解除反斜线转义。参数名不区分大小写;任何同名参数重复都会使字段无效,并把文件名选择标为有歧义,不会静默选取最后一项。有效 filename* 优先于 filename,显式为空的扩展值也保持为空。UTF-8 解码会拒绝错误字节序列;旧版 ISO-8859-1 按字节直接映射 Latin1 码点,不按 Windows-1252 处理。其他字符集和扩展值中未转义的非 ASCII 字符不受支持。生成模式支持 inline 或 attachment,输出转义后的 ASCII 兼容名,并按需添加遵循 RFC 8187 的 UTF-8 filename*。结果分别列出输入文件名、实际兼容名与建议名,因此关闭 filename* 后不会误称国际化原名仍被完整保留。输入控制字符和孤立代理字符会被拒绝;解析出的路径分隔符或控制字符会提示。本工具不是文件名清理器、multipart/form-data 解析器、MIME 校验器,也不保证浏览器行为。修改输入或选项会清除旧结果。处理在本地进行,不保存输入,文本上限为 1 MiB 和 2000 行。
场景配方
核对多语言下载头实际携带的名称
目标:比较输入的国际化文件名与真正生成的兼容名。
- 解析 attachment; filename="fallback.txt"; filename*=ISO-8859-1''caf%E9.txt,确认建议值为 café.txt。
- 切换到生成,输入 报告.pdf 并关闭 filename*,确认实际头部和建议值为 __.pdf。
- 再开启 filename* 并生成,对照 UTF-8 参数和单列的 ASCII 兼容名,然后在支持的浏览器中测试。
结果:可直接检查编码与兼容名选择;文件系统规则和浏览器行为仍需另行核对。
常见问题
两种文件名同时存在时哪个优先?
有效 filename* 是建议值,即使它为空;filename 保留为兼容候选。扩展值无效时,本次解析也会标为无效。
重复 filename 参数会怎样?
不区分大小写的重复参数会使字段无效;全部参数仍列出,因选择有歧义,suggestedFilename 为 null。
ISO-8859-1 与 UTF-8 用相同方式解码吗?
不是。Latin1 按字节映射,%E9 为 é,%80 为 U+0080 而不是欧元符号;UTF-8 使用严格字节解码。
生成时不包含 filename* 会保留什么?
只输出 ASCII 兼容名;尽可能分解重音字符,其余非 ASCII 字符改为下划线,请核对显示的实际兼容名。
引号内的分号和反斜线都按字面保留吗?
完整引号内的分号保留。HTTP quoted-pair 会消耗反斜线,例如 b 前面的单个反斜线会被移除,并不成为文件名的一部分。
可以直接用建议文件名保存吗?
应先应用接收应用的路径、保留名称、扩展名与重名规则。解析器只提供建议,不提供安全路径或浏览器结果;输入在本地处理且不保存。
继续浏览