HTML URL 编码

URL 编码是一种对 URL 信息进行编码的过程,以便可以通过 Internet 安全地进行传输。

什么是 URL 编码

根据 RFC 3986 ,URL 中的字符仅限于一组已定义的保留和未保留的 US-​ASCII 字符。URL 中不允许任何其他字符。但 URL 通常包含 US-ASCII 字符集之外的字符。必须将它们转换为有效的 US-ASCII 格式才能实现全球互操作性。

要映射全球使用的各种字符,需要使用两个步骤:

  • 首先,数据根据 UTF-8 字符编码进行编码。
  • 然后,只有那些与未保留集中的字符不对应的字节应该像%HH 一样进行百分比编码,其中 HH 是字节的十六进制值。

例如,字符串: François 将被编码为: Fran%C3%A7ois

Ç,ç(c-cedilla)是一个拉丁文字母。

保留字符

某些字符是“保留的”,因为它们可能(或可能不)通过特定 URL 方案中 的通用语法定义为分隔符。例如,正斜杠 / 字符用于分隔 URL 的不同部分。

如果 URL 组件的数据包含与保留的字符集冲突的字符(在 URL 方案中定义为分隔符),则冲突字符必须在形成 URL 之前进行百分比编码。URL 中的保留字符为:

! # $ & ' ( ) * + , / : ; = ? @ [ ]
%21 %23 %24 %26 %27 %28 %29 %2A %2B %2C %2F %3A %3B %3D %3F %40 %5B %5D

非保留的字符

URL 中允许但没有保留目的的字符称为非保留字符。这些包括大写和小写字母、十进制数字、连字符、句点、下划线和波浪号。下表列出了 URL 中的所有未保留字符:

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
a b c d e f g h i j k l m n o p q r s t u v w x y z
0 1 2 3 4 5 6 7 8 9 - _ . ~