URL 编码 / 解码
将特殊字符编码为可安全用于 URL 的形式,或把百分号编码的字符串解码还原为纯文本。
模式:
URL 编码是什么?
URL 编码,正式名称叫百分号编码(percent encoding),是一种在统一资源标识符(URI)中编码信息的机制。某些字符在 URL 中具有特殊含义——例如 ? 用于开启查询字符串,& 用于分隔参数,= 用于赋值。如果你的数据里包含这些字符,就必须先编码,URL 才不会被误解析。
编码会把每个不安全的字符替换为一个 % 加两位十六进制数字。空格变成 %20,& 变成 %26,而像 你好 这样的中文字符则变成 %E4%BD%A0%E5%A5%BD(其 UTF-8 字节经百分号编码后的结果)。
Component 模式与 Full URL 模式
本工具提供两种编码模式,分别对应 JavaScript 内置的两个函数:
- Encode Component(
encodeURIComponent)—— 除了A–Z a–z 0–9 - _ . ! ~ * ' ( )之外的所有字符都会被编码。适用于要放进查询字符串或路径片段中的单个值。例如,在把搜索词拼接到?q=后面之前先编码它。 - Encode Full URL(
encodeURI)—— 会保留那些赋予 URL 结构含义的字符(: / ? # [ ] @ ! $ & ' ( ) * + , ; =)。当你已经有一个结构完整有效的 URL,只想对其中的非 ASCII 字符进行编码时,使用这个模式。
如何使用本工具
- 编码:在左边输入框输入或粘贴纯文本,选择一种模式,然后点击 编码 →。
- 解码:把百分号编码的字符串粘贴到右边输入框,然后点击 ← 解码。无效的序列(例如孤立的
%或格式错误的%XY)会显示错误提示。 - 点击 交换 可以互换两个输入框的内容,点击 复制 可以把任一侧的内容复制到剪贴板。
常见问题
- URL 编码是什么?
- URL 编码(也叫百分号编码)会把 URL 中不允许出现的字符转换成一种安全的形式。每个不安全的字符都会被替换为一个百分号(%)加上两位十六进制数字,这两位数字表示该字符的 UTF-8 字节值。例如,空格变成 %20,与号变成 %26。
- “Encode Component”和“Encode Full URL”有什么区别?
- Encode Component(encodeURIComponent)会编码所有特殊字符,包括 :、/、?、#、& 和 =。当你要编码一个将放进 URL 查询字符串或路径片段中的值时,使用它。Encode Full URL(encodeURI)会保留那些在 URL 中具有结构含义的字符(:、/、?、#、&、@、=),只编码真正非法的字符。当你要编码一个完整的 URL 时,使用它。
- 什么时候该用 URL 编码?
- 只要你把用户提供的数据放进 URL 里,就应该用 URL 编码——例如搜索查询参数、路径中的文件名,或通过 GET 提交的表单值。如果不编码,空格、&、= 和 # 等特殊字符可能会破坏 URL 结构,或被服务器误解。
- 哪些字符会被编码?
- 在 Component 模式下,除了字母(A–Z、a–z)、数字(0–9)以及字符 - _ . ! ~ * ' ( ) 之外,其余一切都会被编码。在 Full URL 模式下,额外保留的字符包括 : / ? # [ ] @ ! $ & ' ( ) * + , ; =。
- 我的数据安全吗?
- 安全。本工具完全在你的浏览器中运行,使用内置的 encodeURIComponent() 和 decodeURIComponent() JavaScript API,不会把任何数据发送到服务器。