URL 编码、解码与解析
为 URL 对文本进行百分号编码和解码,或把 URL 拆成协议、主机、路径和查询,并以表格形式编辑查询。
代码示例
可直接复制到你自己的项目中。每个示例只使用该语言的标准库,因此无需安装任何东西。
const text = 'name=Zoë & co'
console.log(encodeURIComponent(text))功能
为在 URL 中使用而对文本进行百分号编码和解码,并把 URL 拆成协议、主机、端口、路径、查询和片段。查询以可编辑的名称和值表格呈现,你修改时 URL 会随之重建。
使用方法
- 每行输入或粘贴一项文本或 URL,或拖入文本文件。
- 选择模式:编码转义单个值中所有不安全的字符,编码 URL 保留 URL 结构,只转义不能出现的字符,解码读取百分号编码,解析把 URL 拆成各部分。
- 在解析模式下,在查询表中修改参数、添加或删除参数,并从输入中复制重建后的 URL。
示例
对一个值编码:
name=Zoë & co 变成 name%3DZo%C3%AB%20%26%20co。URL https://example.com/zoek?q=kaas en brood 用编码 URL 变成 https://example.com/zoek?q=kaas%20en%20brood。
须知
- 空格写成
%20。在 URL 的查询中,+也表示空格;查询表按此读取。 - ASCII 以外的字符按 UTF-8 字节编码:
é变成%C3%A9。 - 解析从不失败:像
/a/b?x=1这样的相对引用只是没有协议或主机。 - 当
%后面没有两位十六进制数字,或转义序列不是有效的 UTF-8 时,解码会失败,该行会被跳过。
什么是百分号编码?
URL 只能包含一小组安全字符。其他任何字符,如值中的空格、重音符号或 & 符号,都写成 % 加每个字节的两位十六进制数:空格变成 %20,é 变成 %C3%A9。解码则反过来。
常见问题
“编码”和“编码 URL”有什么区别?
“编码”会转义所有不是字母、数字或 - . _ ~ 的字符,适合查询参数这样的单个值。“编码 URL”保留赋予 URL 结构的字符,如 : / ? # & 和 =,只转义根本不能出现的字符,如空格和重音符号。
为什么查询表中的加号会变成空格?
在 URL 的查询部分,+ 表示空格,这是来自 HTML 表单的习惯。表格按此读取,并把空格写回为任何解析器都接受的 %20。
这个工具会把我的 URL 发送到别处吗?
不会。一切都在你的浏览器中进行。你输入的内容不会发送到我们的服务器。