跳转到主要内容

如何对字符串进行 URL 编码

百分号编码会把 URL 中不安全的字符替换为 %,后接该字符每个 UTF-8 字节的十六进制值。使用 encodeURIComponent() 的“组件”模式适合单个查询参数值或路径片段。

计算示例

字符UTF-8 字节组件
␠%20%20
&%26%26
=%3D%3D
/%2F%2F
?%3F%3F
é%C3 %A9%C3%A9
😀%F0 %9F %98 %80%F0%9F%98%80

“组件”模式把整句话编码成一个安全的值。

输入
rock & roll/size=XL? café 😀
结果 · encodeURIComponent()
rock%20%26%20roll%2Fsize%3DXL%3F%20caf%C3%A9%20%F0%9F%98%80

“完整 URL”模式会保留 & = / ? 不变,因此只应用于完整的 URL。

输入
rock & roll/size=XL? café 😀
结果 · encodeURI()
rock%20&%20roll/size=XL?%20caf%C3%A9%20%F0%9F%98%80

工具的处理方式

  • 字母 A–Z 和 a–z、数字 0–9 以及 - _ . ! ~ * ' ( ) 始终保持不变。
  • 其他字符都会先转换为 UTF-8 字节,每个字节写成 % 加两位大写十六进制数:é 占两个字节,大多数表情符号占四个字节。
  • “组件”模式还会编码保留字符 : / ? # [ ] @ & = + $ , ;,因此它们无法改变 URL 的结构。

URL 编码指南