URL 编解码

仅在当前浏览器处理

文本上限:2000000 个字符

此工具不会上传你的输入。

网关把「你好」截断,多半是没编码或编了两次。本页三种模式:编整段、编组件、解码。JWT 里是 Base64URL,不要拿到这里当百分号。

接口文档里中文要进 q=,微信分享链接要带标题——只编组件MDN 中文文档写得很死:用户输入里的 &= 不编,服务器会拆成新的键值对。365 工具箱一类教程也强调:测试环境能开、生产丢一半参数,八成选错了函数。

可读路径走 URL Slug。文本 Base64 走 Base64。HTML 里的 &实体编解码

错误地把整段丢进组件模式,会变成无法打开的一串:

https%3A%2F%2Fexample.com%2Fsearch%3Fq%3D%E4%BD%A0%E5%A5%BD

正确的是只编「你好」:

https://example.com/search?q=%E4%BD%A0%E5%A5%BD

中文查询只要编组件

  • 「你」编成 %E4%BD%A0 这类 UTF-8 三字节。老式 escape%u4F60 很多网关不认。
  • 空格在本页是 %20。表单里常见 +。解码模式会先把 + 换成空格。
  • 不是短链,不是签名 URL,也不是加密。
  • 编两次变成 %2520。解一次不够就再解。

不要连着协议一起编

  1. 只贴要编码的那一段值,或整段地址(选对模式)。
  2. 编码或解码。
  3. 拼回完整 URL 时自己看 ?&。对不上先查是不是编了两次。

不是短链服务。不是签名 URL 生成器。编码不是加密。

常见问题

encodeURI 和 encodeURIComponent 怎么选?

整段地址、只想把中文和空格编掉,用整段模式(encodeURI),://、?、& 会留下。查询值、路径段用组件模式,&、=、/ 都会变成百分号。

为什么整段一起编就打不开?

组件模式会把 https:// 编成 https%3A%2F%2F。只编要放进参数的那一段值。

和 Slug、Base64 有什么不同?

Slug 是可读路径。Base64 是另一套字母,JWT 用 Base64URL。百分号编码不是加密。

加号和 %20 哪个是空格?

本页编码输出 %20。表单 application/x-www-form-urlencoded 常用 +。解码时会先把 + 当成空格再解。不要混着拼。

编两次出现 %2520 怎么办?

再解一次。网关、日志各编一层就会叠。对不上先看是不是编了两次,而不是换一种字母表。

HTML 里的   呢?

正文实体走实体页。查询串走本页。两者字母表不同。

相关工具