免费工具 · 在浏览器中运行
URL 编码和解码
把文本编码后安全地放进网址,把百分号编码的文本还原,并列出查询字符串中的参数。
快速解答
网址只能包含部分字符,其他字符要写成百分号编码:空格变成 %20,& 变成 %26,汉字会转换为 UTF-8 字节,例如“中”变成 %E4%B8%AD。对单个值(例如搜索词或参数)请用编码;勾选整个 URL 则会保留 : / ? & =。解码会把它还原为可读文字。
使用方法
- 选择编码或解码. 编码让文本可以安全用于网址;解码把 % 编码还原为文字。
- 粘贴文本或网址. 参数值、完整链接或日志中的编码字符串都可以。
- 复制结果. 如果输入的是链接,还会列出其中的查询参数。
示例
把一个查询字符串作为单个值编码:
输入
name=Sara Levi&city=Tel Aviv输出
name%3DSara%20Levi%26city%3DTel%20Aviv常见错误及解决方法
URIError: URI malformed- 有一个 % 后面不是两位十六进制数字,或者编码不是有效的 UTF-8。% 本身请编码为 %25。
解码后空格显示为 +- 表单数据把空格写成 +。请勾选“把 + 当作空格”,或使用会自动处理的 URLSearchParams。
链接中出现 %2520- 值被编码了两次。每个值只在加入网址前编码一次。
& 后面的参数丢失了- 值中包含未编码的 & 或 #。请用 encodeURIComponent 编码每个值,而不是用 encodeURI 编码整个网址。
常见问题
什么是 URL 编码?
把网址中不允许出现或有特殊含义的字符写成 % 加两位十六进制数字,例如空格写成 %20。
encodeURIComponent 和 encodeURI 有什么区别?
encodeURIComponent 会编码所有有特殊含义的字符,包括 / ? & 和 =,适合单个值;encodeURI 保留这些字符,让整个网址仍然可用。本工具默认使用 encodeURIComponent,勾选“整个 URL”时使用 encodeURI。
空格应该编码成 %20 还是 +?
在路径中空格是 %20;在表单数据和很多查询字符串中,+ 也表示空格。解码表单数据时请勾选“把 + 当作空格”。
为什么链接在 & 或 # 处被截断?
这些字符会结束一个参数或开始一个片段。用 encodeURIComponent 编码每个值,& 会变成 %26,# 变成 %23。
%2520 是什么意思?
文本被编码了两次:%20 又被编码成了 %2520。再解码一次,并修复重复编码的代码。
中文在网址里怎么编码?
每个汉字先转为 UTF-8 字节(通常 3 个字节),每个字节写成 %XX。例如“中”是 %E4%B8%AD。浏览器地址栏通常显示中文,但实际发送的是编码后的版本。
JavaScript 中怎么编码 URL?
单个参数用 encodeURIComponent(value),构建查询字符串可以用 new URLSearchParams({ q: value }).toString()。
Python 中怎么编码 URL?
路径部分用 urllib.parse.quote(value),查询字符串用 urllib.parse.urlencode({"q": value})。
URL 编码和 Base64 一样吗?
不一样。百分号编码只替换不安全的字符;Base64 会用 64 个字符重写全部数据。
我的数据会被发送出去吗?
不会。编码和解码都在你的浏览器中完成。