URL 编解码

URL 百分号编码与解码,可选 encodeURI 或 encodeURIComponent 模式。

URL 编解码是做什么的

把带中文或空格的链接直接发给别人经常打不开,接口传参时特殊字符也会截断请求。输入内容选择编码方向即可得到合法的百分号编码,也能把收到的编码串还原成可读文字。

核心功能

  • 整段网址与单个参数值分开处理
  • 解码时自动把加号还原为空格
  • 解码失败会提示非法百分号编码
  • 输入即转换,无需点击按钮

URL 编解码怎么用

输入网址或参数值,选择编码方式。整段网址用 encodeURI,参数值用 encodeURIComponent。

  1. 把待处理的网址或参数值粘贴到输入框
  2. 点击上方编码或解码按钮切换转换方向
  3. 整条链接选 encodeURI 模式,参数值选另一种
  4. 在右侧输出区查看结果,点复制按钮取走

适合这些场景

  • 开发拼接接口请求的查询参数
  • 运营生成可点击的带中文推广链接
  • 排查浏览器地址栏里的乱码参数

常见问题

两者有什么区别?

encodeURI 保留 : / ? & = # 等网址结构字符,适合编码整条链接;encodeURIComponent 会把这些也一并编码,只适合处理单个参数值。

解码后加号变成空格是 Bug 吗?

不是。表单提交习惯把空格编码为加号,解码时按此约定还原。如果加号本身是内容,编码时应先转成 %2B。

为什么中文编码后这么长?

一个汉字按 UTF-8 占 3 字节,每字节编码成百分号加两位十六进制,共 9 个字符,属正常现象。

什么字符不会被编码?

字母数字与 - _ . ~ ! * ' ( ) 始终保留;encodeURI 额外保留网址结构字符,具体可对比两种模式的输出。