URL编码表

写code的时候偶然发现了这方面的东西,就查了下,做个总结。


URL编码表定义

URL编码(也称为百分号编码)是一种在URL中表示特殊字符的方法。它将非字母数字字符替换为 % 后跟两个表示字符ASCII值的十六进制数字。这种编码用于确保这些字符可以安全地包含在URL中,在传输和解析过程中不会引起错误。

URL编码表

以下是一些常见字符及其URL编码表示法:

字符URL编码字符URL编码
空格%20#%23
!%21$%24
"%22%%25
&%26'%27
(%28)%29
*%2A+%2B
,%2C-%2D
.%2E/%2F
:%3A;%3B
<%3C=%3D
>%3E?%3F
@%40[%5B
\%5C]%5D
^%5E_%5F
`%60{%7B
``%7C}
~%7E

特殊字符及其编码意义

  1. 空格(Space): %20
  2. 引号("): %22
  3. 百分号(%): %25
  4. 加号(+): %2B
  5. 斜杠(/): %2F
  6. 冒号(:): %3A
  7. 问号(?): %3F
  8. @ 符号(@): %40
  9. 链接符号(#): %23

编码示例

示例1:编码URL中的空格和特殊字符

假设你有一个字符串 Hello World!,你想要将其编码为URL友好的格式:

import urllib.parse

original_string = "Hello World!"
encoded_string = urllib.parse.quote(original_string)
print(encoded_string)  # 输出:Hello%20World%21

在Python中使用 urllib.parse.quote 方法,可以将字符串中的空格和感叹号字符编码为 %20%21

示例2:解码URL编码的字符串

假设你有一个URL编码的字符串 Hello%20World%21,你想要将其解码回来:

import urllib.parse

encoded_string = "Hello%20World%21"
decoded_string = urllib.parse.unquote(encoded_string)
print(decoded_string)  # 输出:Hello World!

在Python中使用 urllib.parse.unquote 方法,可以将编码的字符串解码回来。

浏览器和编程语言中的URL编码和解码

JavaScript:

// 编码
let originalString = "Hello World!";
let encodedString = encodeURIComponent(originalString);
console.log(encodedString);  // 输出:Hello%20World%21

// 解码
let decodedString = decodeURIComponent(encodedString);
console.log(decodedString);  // 输出:Hello World!

属性

URL编码的字符主要有以下几类:

  • 保留字符(Reserved Characters): 在URL的某些部分有特殊含义的字符。

    • 例如::, /, ?, #, [, ], @, !, $, &, ', (, ), *, +, ,, ;, =
  • 不安全字符(Unsafe Characters): 这些字符在URL中使用可能会引起歧义。

    • 例如:空格、双引号(")、<, >, #, %, {, }, |, \, ^, ~, [, ], `
  • 字母数字字符(Alphanumeric Characters): 这些字符不需要编码。

    • 例如:字母(A-Z,a-z)、数字(0-9)

用途和示例

1. 安全传输数据

URL编码通常用于确保特殊字符不会被误解为URL的控制字符,从而在URL传输过程中避免错误。

2. 表示保留字符

在某些上下文中,例如查询字符串中,斜杠 / 和其他保留字符需要被编码以表示实际内容而非路径分隔符。

常见使用场景
  1. Form Data 提交: 在HTML表单提交时,表单数据会被编码以确保特殊字符可以正确传递。
  2. 查询参数: URL中的查询参数需要适当编码以防止干扰URL结构。
  3. 路径参数: 某些Web应用程序会对路径参数进行编码,以确保参数在路由中被正确解析。

总结

URL编码(百分号编码)是Web开发中常用的方法,用于确保URL可以安全地传输包含特殊字符、保留字符和不安全字符的数据。在实际开发中,你可以使用编程语言提供的URL编码函数来处理URL编码和解码。学习并理解这些编码规则,能够帮助你处理URL中的各种复杂情况。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值