数据安全提示: 所有文本数据均在您的浏览器本地处理,不会上传到服务器。

URL编码/解码工具

JavaScript原生支持
编码标准:
encodeURIComponent
encodeURI
escape (旧)
当前操作:单行文本 → URL编码 (encodeURIComponent)

输入文本

字符数: 0

转换结果

转换结果将显示在这里...
等待输入... 长度: 0

使用示例

"hello world" → URL编码
hello%20world
"测试数据?key=value&id=123" → URL编码
%E6%B5%8B%E8%AF%95%E6%95%B0%E6%8D%AE%3Fkey%3Dvalue%26id%3D123
"hello%20world%21%3Fkey%3Dvalue%26id%3D123" → 解码
hello world!?key=value&id=123
"https://example.com/search?q=测试&lang=zh" → URL编码
https://example.com/search?q=%E6%B5%8B%E8%AF%95&lang=zh

URL编码算法原理

不同编码标准对比

方法编码范围保留字符使用场景
encodeURIComponent除字母、数字、- _ . ! ~ * ' ( )外所有字符- _ . ! ~ * ' ( )编码URI参数值
encodeURI除完整URI结构字符外所有字符字母、数字、- _ . ! ~ * ' ( ) ; , / ? : @ & = + $ #编码整个URI
escape除字母、数字、* @ - _ + . /外所有字符* @ - _ + . /旧版编码,不推荐使用

JavaScript中的URL编码方法

// encodeURIComponent - 编码整个URI组件
const encodedComponent = encodeURIComponent('测试?param=value&id=1');
// 结果: "%E6%B5%8B%E8%AF%95%3Fparam%3Dvalue%26id%3D1"

// encodeURI - 编码整个URI
const encodedURI = encodeURI('https://example.com/测试?param=value&id=1');
// 结果: "https://example.com/%E6%B5%8B%E8%AF%95?param=value&id=1"

编码过程示例 ("中")

字符UnicodeUTF-8字节十六进制URL编码
U+4E2D11100100 10111000 10101101E4 B8 AD%E4%B8%AD
U+658711100110 10010110 10000111E6 96 87%E6%96%87
空格U+00200010000020%20
?U+003F001111113F%3F

常见保留字符编码

空格 %20
! %21
# %23
$ %24
% %25
& %26
' %27
( %28
) %29
* %2A
+ %2B
, %2C
/ %2F
: %3A
; %3B
= %3D
? %3F
@ %40
[ %5B
] %5D

URL编码应用场景

URL参数传递

URL编码确保特殊字符(如?、&、=、空格等)在URL参数中正确传递,避免解析错误。

AJAX请求

JavaScript AJAX请求中手动对参数进行URL编码,确保数据正确传输到服务器。

表单数据提交

HTML表单通过GET方法提交时,浏览器自动对表单数据进行URL编码。

Cookie存储

Cookie值中如果包含特殊字符,需要进行URL编码才能正确存储和读取。

社交媒体分享

生成分享链接时对标题、描述等参数进行URL编码,确保分享内容完整。

快速提示

  • 本地处理,数据安全
  • 编码标准可选
  • 支持批量处理
  • 一键复制结果
  • Ctrl+Enter快速转换

技术信息

标准版本:RFC 3986
编码方式:百分号编码
字符编码:UTF-8
保留字符:18个
实现:JavaScript原生

需要其他编码工具?

免费为您开发定制化工具