URL 编解码

URL 编码与解码,支持整段 URL 或单个参数,中文自动按 UTF-8 处理

常见问题

encodeURIComponent 和 encodeURI 有什么区别?

encodeURI 用于编码完整 URL,不会转义 : / ? # & = 等保留字符;encodeURIComponent 用于编码 URL 中的某一段(如查询参数的值),会转义几乎所有特殊字符。参数值务必使用后者,否则 & 和 = 会破坏 URL 结构。

为什么中文变成了 %E5%BC%80 这样的内容?

URL 只允许 ASCII 字符,中文会先按 UTF-8 转成字节序列,每个字节再写成 %XX 形式。一个中文字符占 3 个字节,所以编码后是 3 组 %XX,属于正常结果。

解码报错「URI 格式错误」怎么办?

通常是 % 后面缺少两位十六进制数字,或 % 序列不是合法的 UTF-8 字节。请检查内容是否被截断,或确认它确实经过 URL 编码。