SomeeLab.tools

URL 编码与解码

对单个查询参数值或整条网址做百分号编码,也可以还原。无需注册,全部在浏览器中完成。

用于查询串里的一个值。连 & = ? / # 都会转义,值不会跑到参数外面去。

单个值,还是整条网址

两种模式的分别就在这五个字符上:&=?/#

单个值会把它们统统转掉。要放进参数里面的东西就用它,比如搜索词或跳转地址。把一条没转义的网址接在 ?next= 后面,里面的 & 会被当成新参数的开头,值就从那里断了。

整条网址保留这些搭骨架的字符。手上已经有一条能用的网址,只想收拾里面的空格和中文时用它。整条地址走这个模式,https:// 里的斜杠原样保留,链接照常能点。

拿不准时只看一条:在拼网址的一部分就用单个值,手上已经是一条网址就用整条网址。

空格是 + 还是 %20

两种都见得到,但各有各的地盘。%20 是标准写法,在网址任何位置都成立。+ 来自更早的 HTML 表单编码,只有在查询串里才算空格。

路径里的 + 就是加号本身。用表单规则去解码带加号的文件名,文件就被悄悄改了名。这个工具按标准来,空格转成 %20

被编码了两次的值

解码之后如果还剩下 %2520%253A,说明这个值被编码了两次:第二遍把 % 本身也转成了 %25

多半是代码把一个已经编码过的值又编码了一遍。再解一次就能拿到原文,但真正该做的是定下在哪里编码:在把值放进网址的那一处编码一次,前后各段都传原始文本。

不会被转换的字符

A-Za-z0-9 以及 -._~ 是规范认定安全的字符,会原样留下。它们没变不是漏了。

一个汉字在 UTF-8 里是 3 个字节,所以会变成 %E4%B8%AD 这样的三段。编码后的网址忽然变长,原因就在这里。