09 / 开发者工具

URL 编解码

URL 编码(percent-encoding)与解码,支持中文、特殊字符、查询参数解析。本地处理,数据不上传。

INPUT / 输入 原文
0 字符UTF-8
OUTPUT / 结果 等待
未处理
[ 关于 / ABOUT ]

什么是 URL 编码?

URL 编码(也叫百分号编码,percent-encoding)是把 URL 中不能直接使用的字符(如中文、空格、特殊符号)转换为 %XX 形式的过程。比如空格变成 %20,中文"你"变成 %E4%BD%A0。

当你在地址栏粘贴一个含中文的 URL,浏览器会自动编码后发送给服务器。所以经常会看到一长串 %XX 的链接,实际上解码后是中文。

encodeURI vs encodeURIComponent

URL 编码(encodeURI):适合编码完整的 URL,保留 : / ? # & = 等结构字符。
完整编码(encodeURIComponent):适合编码 URL 的某一部分(如参数值),会把 / ? # 等都转义。

[ 常见问题 / FAQ ]

关于 URL 编码

Q.什么时候用 URL 编码,什么时候用完整编码?
如果你要编码整个 URL,用 URL 编码(encodeURI),它会保留 : / ? # 这些结构字符。如果只编码参数值或路径片段,用完整编码(encodeURIComponent),它会编码所有特殊字符。例如 ?q=hello world,只对 "hello world" 用完整编码,得到 hello%20world。
Q.中文 URL 怎么处理?
现代浏览器自动用 UTF-8 编码。比如"测试.html"被编码成 %E6%B5%8B%E8%AF%95.html。粘贴中文 URL 到地址栏一般会被自动编码,但通过 API 或代码处理时需要手动编码。
Q.+ 号和空格的关系?
在 URL 的查询字符串中,历史上 + 号被用来表示空格(基于 application/x-www-form-urlencoded)。而 %20 是更通用的空格编码。本工具的"完整编码"会把空格编码为 %20。如果你的服务端把 + 视为空格,记得手动处理。
Q.URL 编码有长度限制吗?
URL 本身没有标准规定的长度限制,但浏览器和服务器有实际限制。一般建议 URL 不超过 2000 字符。如果需要传大量数据,改用 POST 请求而不是 GET 参数。
Q.哪些字符不会被编码?
"未保留字符"不会被编码:字母 A-Z a-z、数字 0-9、以及 - _ . ~ 四个符号。其他字符在不同编码方式下行为不同:URL 编码保留 ; , / ? : @ & = + $ # ' ! * ( ),完整编码只保留 - _ . ! ~ * ' ( )。