← 返回首页

URL 编码解码工具

URLEncode / URLDecode 互转,兼容组件与完整 URL 两种模式

{{ scope === 'component' ? '当前按组件编码:会转义 & = ? / # 等保留字符,适合查询参数值或路径片段。' : '当前按完整 URL 编码:保留 : / ? # & = 等 URL 结构字符,适合整条网址。' }}
字符数 {{ inputChars }}
转换 交换 复制 清空
字符数 {{ outputChars }}
{{ errorMsg }}
编码会把中文、空格及特殊符号转换为 %XX 形式;解码时若百分号后不是合法的两位十六进制数,将提示非法编码。查询参数中的 + 通常代表空格。
查询参数解析
共 {{ params.length }} 个参数
序号 参数名(已解码) 参数值(已解码)
{{ index + 1 }} {{ param.key || '(空名称)' }} {{ param.value || '(空值)' }}
未检测到查询参数。输入完整 URL 或 a=1&b=2 形式的字符串后自动解析。

encodeURIComponent 与 encodeURI 的区别

encodeURIComponent 用于编码 URL 的一个组成部分,会转义 &、=、?、/、# 等保留字符,因此适合拼接查询参数值;encodeURI 用于编码完整 URL,会保留这些结构字符,只转义空格、中文等非 URL 安全字符。

什么时候需要 URL 编码

URL 中只允许出现有限的 ASCII 字符。当参数值包含中文、空格、&、=、# 等字符时,直接拼接会破坏 URL 结构,必须先编码;服务端接收后再解码还原。

常见问题

为什么解码后 + 没有变成空格?

decodeURIComponent 只处理 %XX,不会把 + 当作空格。表单或查询字符串中的 + 需由服务端按 application/x-www-form-urlencoded 规则解析,本页的参数解析表会将 + 显示为空格。

为什么中文变成了乱码?

URL 编码通常基于 UTF-8。若上游使用 GBK 等编码生成 %XX,而此处按 UTF-8 解码,就可能出现乱码,需要统一编码方式。