如何对URL进行编码和解码

开发者

学习为什么需要URL编码、如何对特殊字符进行编码以安全地在URL中使用,以及如何解码百分号编码的字符串。

步骤指南

1

了解URL编码

URL只能包含有限的ASCII字符。特殊字符(空格、&、=、#等)必须进行百分号编码:用%后跟两位十六进制代码替换。例如:空格→%20,&→%26。

2

使用工具编码URL

在URL编码工具中粘贴您的字符串。点击编码,将所有特殊字符转换为其百分号编码的等效形式。结果可以安全地在URL中使用。

3

解码URL编码的字符串

粘贴百分号编码的字符串,点击解码即可看到原始文字。当您从日志、API响应或网络表单收到乱码URL时非常有用。

4

只编码查询值,不编码完整URL

如果构建如 https://example.com/search?q=hello world 的URL,只需编码值:q=hello%20world。对完整URL编码也会编码://、?和=,破坏URL结构。

5

JavaScript中的encodeURIComponent与encodeURI

encodeURIComponent编码除未保留字符(A-Z、a-z、0-9、-、_、.、~)外的所有字符。用于查询值。encodeURI跳过URL结构字符(:、/、?、#)。用于完整URL。

使用免费工具

URL 编解码工具

常见问题

Q: %20和+有什么区别?

A: 两者都表示空格,但在不同的上下文中。%20是URL任何部分中空格的标准百分号编码。+用于HTML表单查询字符串中的空格。大多数现代解码器都能处理两者。

Q: 为什么URL显示%3A或%2F?

A: %3A=冒号(:),%2F=斜线(/)。当具有URL结构意义的字符包含在查询参数值中并需要转义时,就会出现这些。

Q: 我也需要对路径进行编码吗?

A: 路径段应对空格和其他非ASCII字符进行编码,但不对分隔段的斜线(/)进行编码。对每个路径段单独使用encodeURIComponent。