跳转到主要内容

如何解码 URL 编码的字符串

解码是百分号编码的逆过程:每个 %XX 序列变成一个字节,再把这些字节按 UTF-8 文本读取。“组件”模式使用 decodeURIComponent(),因此结果与原始值完全一致。

计算示例

多字节 UTF-8 序列会变成一个字符。

输入
caf%C3%A9%20%26%20cr%C3%A8me
结果 · decodeURIComponent()
café & crème

%20 会变成空格,但 + 会保留为字面上的加号。

输入
a+b%20c
结果 · decodeURIComponent()
a+b c

最后一个序列缺少一位十六进制数,因此工具会显示错误。

输入
%E0%A4%A
结果 · decodeURIComponent()
编码后的 URL 无效

补上缺失的数位后,这三个字节会解码为一个天城文字母。

输入
%E0%A4%A4
结果 · decodeURIComponent()
त

工具的处理方式

  • 每个 %XX 序列代表一个字节,相邻字节会一起按 UTF-8 解码,所以 %C3%A9 会变成 é。
  • 加号不会被当作空格:+ 仍然是 +。如果文本来自 HTML 表单,请先把 + 替换为 %20 再解码。
  • 只要有任何序列不完整或不是有效的 UTF-8,整个输入都会报错并被拒绝,不会只解码一部分。
  • “完整 URL”模式(decodeURI)会保留 %26、%2F、%3F 等保留字符的转义序列,以免改变 URL 的结构。

URL 编码指南