URL 编解码

URL Percent-encoding 编码与解码,支持中文字符

字符: {{ inputText.length }} 字节: {{ byteCount }}
{{ errorMsg }}

关于 URL 编码

URL 编码(也称百分号编码,Percent-encoding)是一种将 URL 中的特殊字符转换为 % 加两位十六进制数格式的编码机制。根据 RFC 3986 标准,URL 中只允许包含 ASCII 字符的一个子集,其他字符(如中文、空格、特殊符号)必须进行编码。

在 JavaScript 中,encodeURIComponent() 函数用于对 URL 的查询参数进行编码,它会对除了 A-Z a-z 0-9 - _ . ! ~ * ' ( ) 之外的所有字符进行编码。encodeURI() 则保留 URL 结构字符(如 : / ? # & =)。

常见的 URL 编码场景包括:AJAX 请求参数编码、URL 中的中文路径处理、OAuth 签名中的参数编码等。

使用示例

输入:你好世界 → 输出:%E4%BD%A0%E5%A5%BD%E4%B8%96%E7%95%8C

输入:hello world! → 输出:hello%20world!

常见问题

Q: encodeURIComponent 和 encodeURI 有什么区别?
A: encodeURI 不编码 URL 结构字符(:/?#&=+@$),适合编码完整 URL;encodeURIComponent 编码更多字符,适合编码查询参数值。本工具使用 encodeURIComponent。
Q: 空格被编码成 %20 还是 +?
A: encodeURIComponent 将空格编码为 %20。在 application/x-www-form-urlencoded 格式中(如表单提交),空格会被编码为 +。两者都是合法的。
Q: "全部编码"模式是什么?
A: 全部编码模式会将输入中的每个字符都转换为 %XX 格式,包括 ASCII 字母和数字。这在某些特殊场景下有用,如需要完全隐藏 URL 内容时。