编码与转义

URL 编码区分组件、URI 与表单字段值

区分组件、URI 与表单字段值

URL 编码

输入

结果

转换仅在当前浏览器完成,不上传输入,也不访问其中的 URL。

转换选项

采用 encodeURIComponent 字符规则。空格变为 %20,加号变为 %2B;解码保留原始 +。

仅支持 UTF-8,每次解码一层。解码时拒绝无效百分号和无效 UTF-8,两个方向均拒绝孤立 UTF-16 代理项。表单解码采用严格校验,不等同于 URLSearchParams 的宽松解析。

输入上限 1,048,576 个 UTF-16 单元;输出上限 4,194,304 个。空输入有效。粘贴时可能标准化换行。

输入文本或加载示例。空输入可转换为空结果。

确认后,将最新结果作为输入并切换方向。结果超过输入上限时,此操作不可用。

URL 编码用于准备查询参数值、检查复制来的地址,或还原表单字段内容。先选择编码上下文:同一个 &、/ 或 +,在参数数据和地址结构中可能有不同含义。

URL 解码每次只还原一层 UTF-8 百分号编码。结果始终是纯文本;即使内容看起来像地址、片段或脚本,也不会触发访问或执行。

为什么使用此 URL 编码工具?

让分隔符按上下文处理

URL 编码提供组件、整 URI 与单个表单字段值三种上下文。组件模式转义分隔符,URI 模式保留结构,表单模式将空格写成 +。明确选择可避免把值中的 & 当成参数分隔符。

抽象符号沿组件、URI 和表单值三条上下文通路流动。

直接定位失败的来源

不完整的百分号转义和无效 UTF-8 会显示原始输入行列,并高亮错误行。URL 编码工具不会静默插入替换字符,也不会导出只解码了一部分的结果。

损坏的百分号编码纸片序列在首个纸片处标记错误,输出暂停。

按上下文完成转换

01

选择方向和上下文

URL 编码默认使用组件编码,输入框为空。粘贴单个参数值,或选择整 URI 保留地址结构。表单模式把 a=1&b=2 整体作为一个值处理,不会拆分字段。

02

决定何时更新结果

自动转换会在编辑停止 350 毫秒后运行。关闭后显示转换按钮,也可按 Ctrl/Cmd+Enter 手动执行。修改输入或选项立即禁用导出,直至新结果成功;空输入可以正常转换。

03

先预览再替换输入

示例、清空和反向转换均先预览,点击应用才替换输入。反向转换同时切换方向;撤销恢复输入、选项及结果。复制和 TXT 下载包含当前完整结果。

URL 编码的明确转换行为

组件百分号编码

组件模式遵循 encodeURIComponent:ASCII 字母、数字和 -_.!~*'() 保持不变。空格变 %20,& 变 %26,/ 变 %2F。已有百分号也会再次编码为 %25。

保留 URI 分隔符

整 URI 编码额外保留 ;/?:@&=+$,#。解码保留这些符号的转义形式及原有大小写,例如 %2f 仍为 %2f。此模式不解析、验证或修复地址。

区分表单空格和加号

表单编码仅保留 ASCII 字母、数字和 *-._,每次处理单个字段值。空格编码为 +,字面加号编码为 %2B。解码 %2B 得到字面加号,不会再把该结果转为空格。

UTF-8 与输入位置

中文、带重音字母及表情均转换为 UTF-8 字节。错误行列从 1 开始,列按 UTF-16 代码单元计;无效多字节序列定位到开头的百分号。

规则与处理边界

限定三种上下文
URL 编码采用 JavaScript 组件规则、JavaScript URI 规则和严格表单值规则。不提供额外的严格 RFC 3986 编码、自定义字符集、仅路径模式或自动上下文判断。
所有上下文严格报错
解码时,单独的 %、%G1、截断或过长 UTF-8、编码的代理项及超过 U+10FFFF 的值都会失败。表单模式不采用 URLSearchParams 的宽松替换行为,也不拆分键值对。
每次只解码一层
%2520 一次解码得到 %20。不会递归解码,也不会自动识别已有转义。反向转换会切换方向;如需继续解码,应自行复制结果到输入并保持解码方向。
纯文本转换,不发送请求
不会访问、链接、抓取或验证输入地址。不进行 Punycode 转换、查询串解析、Unicode 规范化;转换器不改写换行,但编辑器粘贴过程可能先规范化换行。
额外的原始文本校验
编码和解码均拒绝孤立 UTF-16 代理项,避免文本导出时产生替换字符。这是工具的额外策略,原生 JavaScript URI 解码函数本身可以接受原始孤立代理项。有效 Unicode 正常支持。
固定上限内导出完整结果
输入最多 1,048,576 个 UTF-16 代码单元,输出最多 4,194,304 个。预览最多显示 20,000 个,复制和下载仍含完整内容。输出超限整次失败;不提供文件导入。

URL 编码常见问题

为什么 & 会变成 %26?

在组件和表单值中,& 是数据,需要编码成 %26,以免被读取为参数分隔符。整 URI 模式保留原始 &,因为它可能是地址结构的一部分;工具不会替你推断其含义。

空格用 %20 还是 +?

组件和整 URI 编码把空格写成 %20,表单字段值编码写成 +。只有表单解码把原始 + 当成空格;组件和 URI 解码保留它。组件或表单中的字面加号编码为 %2B。

中文编码后是什么形式?

中文先转换为 UTF-8 字节,再逐字节写成百分号加两位十六进制,例如“中”变为 %E4%B8%AD。日文、韩文和有效的表情字符使用同样的 UTF-8 处理方式。

解码出错怎么处理?

先检查错误提示的原始输入行列。缺少十六进制数字的百分号和无效 UTF-8 都会失败;工具也拒绝原始孤立 UTF-16 代理项。修正来源后重新转换,不会提供部分解码结果。

输入数据是否上传?

不会。转换在当前浏览器内完成,输入地址仅作为纯文本处理,不会被访问。结果更新成功后可复制完整文本或下载 TXT。

发现百分号编码边界情况?

用短文本尝试 URL 编码

选择上下文,比较百分号编码结果,转换成功后复制完整内容。