URL编码解码工具 在线百分号编码解码转换
百分号编码解码文本,支持UTF-8中文和Emoji,提供完整URL编码与查询参数两种模式,适合链接处理、表单提交和API调试等场景。
更新于 2026-08-26
相关工具
功能特性
- 编码或解码文本,确保 URL 安全使用
- 支持 UTF-8,包括 emoji、中文等所有 Unicode 字符
- 空格编码选项:%20(标准)或 +(表单数据)
- 输入即更新,无需点击
- 单独编码查询参数或整体编码整个 URL
- 将百分号编码字符串解码回原始可读文本
- 双向转换:一键切换编码和解码模式
- 控制十六进制大小写(大写 %20 或小写 %20),适配不同 API 规范
- 实时字符数和字节数统计
- 首次加载后支持离线使用
使用方法
- 1在输入区域粘贴文本或 URL。
- 2一键切换编码和解码。处理表单数据时启用「空格编码为 +」。
- 3结果实时更新。使用复制或下载按钮保存。
- 4粘贴完整 URL 即可编码,工具保留 URL 结构的同时编码不安全字符。
- 5需要解码查询字符串?粘贴已编码的参数值并切换到解码模式即可查看原始文本。
- 6启用大写十六进制以适配期望大写百分号编码的系统(如 RFC 3986 兼容 API)。
- 7为 HTML 表单提交启用「空格编码为 +」,匹配 application/x-www-form-urlencoded 内容类型。
- 8通过在查询参数中编码特殊字符来测试 API 端点,检查编码输出是否符合预期。
- 9拖拽 .txt 文件到工作区批量编码或解码多个 URL 或字符串。
- 10使用字符计数器确保编码后的 URL 不超出不同浏览器和 CDN 的长度限制。
常见问题
为什么 URL 里的空格会变成 %20?
因为空格(以及 &、? 等特殊字符和非 ASCII 文本)不允许直接出现在 URL 中:它们会被替换为 % 加两位十六进制数字,所以空格变成 %20。这就是 URL 编码(百分号编码),它让任何文本都能安全地放进 URL 或查询字符串。工具会即时显示每个字符的编码结果。
「空格编码为 +」选项有什么用?
启用后,空格编码为 + 而不是 %20。这是 HTML 表单使用的 application/x-www-form-urlencoded 格式。提交表单数据时使用此选项。
URL 编码和 Base64 编码有什么区别?
URL(百分号)编码把个别不安全字符转成 %XX,其余文本保持可读,用于 URL 和查询字符串。Base64 把任意字节映射为固定字符集(A–Z、a–z、0–9、+、/、= 补位),用于在文本通道里传输二进制数据(图片、令牌)。两者不可互换:文本要放进 URL 就用百分号编码,要传输二进制就用 Base64。
为什么解码出来是乱码?
说明原字符串是用 UTF-8 之外的字符集(常见于旧系统的 GBK/GB2312)编码的。本工具按 UTF-8 解码,其他编码的字节就会显示为乱码。从源头解决:用字符串编码时所用的字符集解码,或把原始文本转成 UTF-8 后再编码。
支持 Unicode 吗?
支持。本工具正确处理所有 Unicode 字符,包括 emoji、中文、日文、重音字母等。
哪些字符需要 URL 编码?
需要编码的字符包括:空格(%20)、特殊字符如 &、?、#、%、/、:、;、=、@、$、逗号以及所有非 ASCII 字符。只有字母 A-Z、数字 0-9 和少数特殊字符(-、_、.、~)不需要编码。
编码整个 URL 和编码查询参数有什么区别?
编码完整 URL 时,:// 和路径分隔符 / 应保持可读。编码查询参数时,应分别编码键和值。本工具两种场景都支持:粘贴完整 URL 或仅粘贴参数值。
空格应该使用 %20 还是 +?
URL 路径段和查询字符串中使用 %20。HTML 表单提交的 application/x-www-form-urlencoded 数据中使用 +。工具中的「空格编码为 +」选项可选择合适的格式。
为什么有些编码 URL 使用大写十六进制,有些使用小写?
大写和小写十六进制数字在 URL 编码中均有效。RFC 3986 视它们为等价。大写更常见,可读性更好。工具通过「大写十六进制」选项可选择任一种格式。
中文字符的 URL 编码是如何工作的?
中文字符首先编码为 UTF-8 字节,然后对每个字节做百分号编码。例如,「中」(U+4E2D)在 UTF-8 中变为 %E4%B8%AD。工具自动处理,只需输入中文文本即可正确编码。
可以一次性编码多个参数吗?
可以。粘贴整个查询字符串(如 'name=value&foo=bar'),工具会编码参数值,同时保留 & 和 = 分隔符。这对准备 API 请求体特别有用。
什么是双重 URL 编码?什么时候需要它?
双重编码是对已编码的值再次编码(例如 %20 变成 %2520)。当需要将 URL 作为查询参数传递,或某个系统在重新编码前先解码时,可能需要双重编码。使用两次编码模式即可实现。
为什么 URL 编码解码工具对 Emoji 编码的结果不对?
Emoji 在基本多文种平面之外,UTF-8 编码占 4 个字节,正确的结果是 12 位十六进制序列,如 %F0%9F%98%80。内部用 UTF-16 或按 Latin-1 处理的工具会输出错误结果(%3F 或半个序列)。本工具按 UTF-8 编码,直接粘贴 emoji 即可;如果表单或 API 拒绝,请检查技术栈每一层(数据库列字符集、HTTP 头)是否都是 UTF-8。
为什么在线 URL 编码解码器和 Postman 里的结果不一样?
几乎都是 encodeURI 与 encodeURIComponent 的区别:encodeURI 保留 /、:、?、&、= 等保留字符,encodeURIComponent 会把它们百分号编码,Postman 还在字段级应用自己的规则。另一个经典差异是双重编码:把已编码的字符串再粘一次,%20 就变成 %2520。先明确你是为哪一层编码(路径还是查询参数值),并始终使用对应的模式。