URL 编码解码
URL Encoder & Decoder
对 URL 和查询参数做百分号编解码,可选整条 URL 或单个组成部分两种模式。
对 URL 做百分号编码和解码,并把四套都叫「URL 编码」的不同规则分开:`encodeURIComponent`、`encodeURI`、严格的 RFC 3986,以及把空格变成 `+` 的表单编码。选错一套,得到的就是一条别人输入 `&` 之前都正常的链接。
一个查询值、一段路径、一个片段。`encodeURIComponent` 会转义 `/ ? : @ & = + $ , #`,而把 `A-Za-z0-9 - _ . ! ~ * ' ( )` 留着不动。
文本
编码后的值
输入
0个字符
输出
0个字符
转义掉的字符
0
怎么用
先选范围
「组件」用于单个查询值或单个路径段——这是常见情况。「整条 URL」只用于你已经有一条 URL、只想整理一下的时候;它特意不动 `?`、`&` 和 `/`。
粘贴并读输出
面板下方的计数器显示转义了多少个字符,这是发现自己选了一个什么都没做的范围的快捷办法。
解码老 URL 时设置字节编码
十来年前中文网站的链接百分号编码的是 GBK 字节而不是 UTF-8,按 UTF-8 解码得到的就是乱码。解码模式下的选择器里有 GB18030、EUC-KR、Shift_JIS 和 Latin-1 系列。
参数多的时候按字段编辑查询串
「按查询串编辑」开关把 URL 拆成名/值行。值以解码后的形式显示、以编码后的形式写回,所以嵌在 `next=` 参数里的一整条 URL 编辑之后仍然完好。
常见问题
「组件」和「整条 URL」有什么区别?
「组件」会转义分隔符——`/ ? : @ & = +`——因为一个含有它们的*值*不转义就会把 URL 撕开。「整条 URL」保留它们,因为它们就是结构。对一个值用「整条 URL」,是造出一条值里一出现 & 就失效的链接的标准做法。
为什么我的签名验不过?
多半是因为 `encodeURIComponent` 不动 `! ' ( ) *`,而 RFC 3986 会转义它们。OAuth 1.0、AWS SigV4 和大多数其他签名方案都按严格规则做规范化,所以含有撇号的值哈希出来就不一样。「严格」范围就是为这个准备的。
「编码了两次」的提示是什么意思?
意思是把结果再解码一次会得到不同的东西——本该是 `%20` 的地方出现了 `%2520`。通常是一个值在客户端过了一次编码器,又在代理或框架里过了一次。解码两次拿回原文,然后修管道。
为什么空格有时是 `+`、有时是 `%20`?
`+` 属于 `application/x-www-form-urlencoded`——表单 POST 的正文,以及 `URLSearchParams` 生成的东西。URL 里其他任何地方空格都是 `%20`,`+` 表示字面的加号。混用会把 `a+b` 变成 `a b`,或者反过来。
可以从这些接进来
URL Slug 生成
Slug Generator
把标题转成 URL 安全的 slug,分隔符可选;韩文会转写成罗马字,其他非拉丁文字可以原样保留或直接去掉。
Base64 编码解码
Base64 Encoder & Decoder
对文本和文件做 Base64 与 Base64URL 编解码,UTF-8 处理正确。
HTML 实体编码
HTML Entity Encoder
转义和还原 HTML 实体,输出可选实体名、十进制或十六进制写法。
URL 解析与参数编辑
URL Parser & Query Editor
把网址拆成各个部分,用可编辑的表格展示查询参数,改完再拼回一条完整网址。
接下来
这些工具吃得下当前工具的产出,结果可以直接送过去。
Base64 编码解码
Base64 Encoder & Decoder
对文本和文件做 Base64 与 Base64URL 编解码,UTF-8 处理正确。
HTML 实体编码
HTML Entity Encoder
转义和还原 HTML 实体,输出可选实体名、十进制或十六进制写法。
Punycode 转换
Punycode Converter
在国际化域名和 punycode 之间互转,并对容易混淆的相似字符发出提醒。
URL 解析与参数编辑
URL Parser & Query Editor
把网址拆成各个部分,用可编辑的表格展示查询参数,改完再拼回一条完整网址。
curl 转代码
curl to Code
把一条 curl 命令转成 fetch、axios、Python requests、Go、PHP 或 PowerShell 代码。
文本哈希计算
Text Hash
算出字符串的 MD5、SHA-1、SHA-256、SHA-384、SHA-512 和 CRC-32,输出可选大写或 Base64。