在文本、URL 编码与组件编码之间自由转换
只需 3 步即可完成转换:
在以下 Web 开发 / API 集成场景中,URL 编码器非常实用:
对 HTML 表单提交的参数(application/x-www-form-urlencoded)进行编码或解码,便于检查 POST/GET 参数;空格会被转换为“+”。
将搜索关键词或过滤条件转换为安全的 URL 查询参数,例如 “Tokyo Tower” → “Tokyo%20Tower”。
将 REST API 端点中的路径或参数值编码为 RFC 3986 兼容格式。使用组件编码时,空格会转换为“%20”,斜杠和冒号会被正确保留。
解码地址栏或访问日志中的编码 URL,快速定位原始字符串,有助于排查错误和分析日志。
对 OAuth 2.0 的 redirect_uri、state 等参数进行编码/解码,方便在认证流程中验证传递的值。
URL 编码(percent-encoding)通过“%”加十六进制的形式来表示 URL 中不允许或特殊的字符,在传输中文、日文等多字节字符或特殊符号时尤为重要。
提交 HTML 表单时使用表单编码;处理 REST API 路径或查询参数时推荐组件编码。如无法确定,组件编码通常更稳妥。
是的,它们指的是同一种机制,因为用到了“%”符号来表示字节。
主要区别在于空格和编码字符集:表单编码把空格变成“+”,组件编码变成“%20”,并且会编码更多字符。
首先转成 UTF-8 字节,再将每个字节写成“%XX”。例如“你” → “%E4%BD%A0”。
除字母、数字、连字符、下划线、点和波浪号外的绝大多数字符都要编码,包括空格、斜杠、冒号、非 ASCII 字符以及各种符号。
通常是因为格式不合法(比如 % 后面缺少两位十六进制数)或同一个字符串被重复编码,导致需要多次解码。
不是,它只是格式转换,任何人都可以轻松解码,因此不能用于保护机密信息。
大多数语言都提供现成函数:JavaScript encodeURIComponent()、Python urllib.parse.quote()、PHP rawurlencode()、Java URLEncoder.encode() 等。
指对已经编码的字符串再次编码,例如 “%20” 再编码后会变成 “%2520”,通常会导致错误,应尽量避免。
Encode and decode Base64
Encode and decode HTML special characters
Encode and decode URLs
Decode encoded URLs
Encode URLs to safe format