跳到主内容

URL 编解码

开发者工具

encodeURI/decodeURI

答案速览

URL 编解码——encodeURI/decodeURI。encodeURIComponent:对除 A-Z a-z 0-9 - _ . ! ~ * ' ( ) 外的字符编码为 %XX。

方向:模式:

输入

输出

组件级 vs 完整 URL 的区别

  1. 1encodeURIComponent 转义所有保留字符(: / ? & =)——用于查询参数的值。
  2. 2encodeURI 保留结构字符——用于完整 URL。
  3. 3例:?q=a&b 中值 "a&b" 必须把 & 编码为 %26,否则会被拆成两个参数。
  4. 4空格:组件模式为 %20;表单提交(x-www-form-urlencoded)用 + 代替。

RFC 3986 字符分类

: / ? # [ ] @保留字符(分隔 URL 结构)
! $ & ' ( ) * + , ; =子分隔符
A-Z a-z 0-9 - _ . ~非保留字符(永不编码)
UTF-8 提示一个汉字=UTF-8 三字节=三个 %XX

这个工具对你有帮助吗?

怎么用

  1. 确认输入格式:在 URL 编解码 中按提示格式粘贴数据(十六进制带不带 0x 前缀均可),encodeURI/decodeURI。
  2. 选对进制/位宽:涉及位运算或整数溢出的场景,先确认位宽(8/16/32/64 位)与符号性。
  3. 读结果:结果区同时给出多种表示(十进制/十六进制/二进制),便于交叉核对。
  4. 边界自查:接近位宽上限的值注意溢出回绕;URL 编解码 会在溢出时给出标注。

核心要点

  • 位宽与符号性决定边界:32 位有符号整数范围 −2147483648–2147483647,无符号 0–4294967295;超界发生回绕而非报错。
  • 进制只是表示法:同一数值在不同进制下字面量不同但值相等;URL 编解码 的多进制联显可直观验证这一点。
  • 浮点的二进制本质:0.1+0.2 ≠ 0.3 源于 IEEE 754 双精度无法精确表示 0.1,涉及金额请转为"分"的整数运算。
  • 编码与字节序:文本按 UTF-8 处理(变长 1–4 字节),中文常见汉字占 3 字节;字节序(大小端)影响多字节整数的内存表示。

原理与公式

URL 编解码(百分号编码):

encodeURIComponent:对除 A-Z a-z 0-9 - _ . ! ~ * ' ( ) 外的字符编码为 %XX
encodeURI:保留 ; / ? : @ & = + $ , # 等 URL 结构字符

使用场景区分:

编码整个 URL → encodeURI
编码参数值(如 query 中的中文/特殊字符)→ encodeURIComponent

示例:"中文" → %E4%B8%AD%E6%96%87(UTF-8 三字节逐字节编码)。

常见问题

支持多大的数值?
整数支持到 JavaScript 安全整数 2^53−1(9007199254740991);更大数值精度受限,结果会标注。
0.1 + 0.2 为什么不等于 0.3?
IEEE 754 双精度浮点的二进制表示误差,是所有语言共有的现象;显示层 URL 编解码 会按精度规则圆整到可读位数。
十六进制要带 0x 前缀吗?
可不带。URL 编解码 按选定进制解析输入;混用多进制输入时前缀(0x/0b/0o)优先于选择器。
UTF-8 下一个汉字几个字节?
常见汉字(基本区)3 字节,生僻字(扩展区)4 字节,ASCII 字符 1 字节——与 GBK 的固定双字节不同。
位运算结果是负数怎么回事?
有符号整数的位模式按补码解释,最高位为 1 时表示负数;查看二进制表示即可理解符号位的来源。

相关工具

相关指南

来源与更新

开发者工具领域的标准计算公式。所有计算逻辑经过验证。最近更新:2025-07

最近更新:

本页公式与内容经一键算团队复核,仅供学习参考,实际业务请以官方口径为准。

内容由一键算编辑团队维护并定期复核,更新与审核流程见编辑规范。

引用本页:一键算. URL 编解码[EB/OL]. https://www.yijiansuan.com/c/dev/url-codec

本工具提供的结果仅供参考,不构成任何专业建议,请以官方核算为准。