HTML - URL 编码



URL 编码是将 URL 中不可打印的字符或具有特殊含义的字符转换为明确且被 Web 浏览器和服务器普遍接受的表示形式的做法。这些字符包括 -

  • ASCII 控制字符 :通常用于输出控制的不可打印字符。字符范围:00-1F、十六进制(十进制 0-31 位)和 7F(十进制 127 位)。下面给出了完整的编码表。
  • 非 ASCII 控制字符 : 这些字符超出了 128 个字符的 ASCII 字符集。此范围是 ISO-Latin 字符集的一部分,包括 ISO-Latin 集 80-FF 十六进制(十进制 128-255)的整个“上半部分”。下面给出了完整的编码表。
  • 保留字符 : 这些是特殊字符,例如美元符号、与号、加号、普通字符、正斜杠、冒号、分号、等号、问号和“at”符号。所有这些在 URL 中可能具有不同的含义,因此需要编码。下面给出了完整的编码表。
  • 不安全字符 : 这些是空格、引号、小于符号、大于符号、井号字符、百分比字符、左大括号、右大括号、竖形图、反斜杠、插入符号、波浪号、左方括号、右方括号、重音。由于各种原因,这些字符可能会在 URL 中被误解。这些字符也应始终进行编码。下面给出了完整的编码表。

编码表示法将所需字符替换为三个字符:一个百分号和两个十六进制数字,它们对应于字符在 ASCII 字符集中的位置。

例子

最常见的特殊字符之一是空格。您不能直接在 URL 中键入空格。字符集中的空格位置是 20 个十六进制。因此,在将请求传递到服务器时,可以使用 %20 代替空格。

http://www.example.com/new%20pricing.htm

此 URL 实际上从 www.example.com 中检索名为“new pricing.htm”的文档

ASCII 控制字符编码

这包括字符范围 00-1F 十六进制(十进制 0-31 英寸)和 7F(十进制 127 英寸)的编码:

十进制 十六进制 字符 URL 编码
0 00   %00
1 01   %01
2 02   %02
3 03   %03
4 04   %04
5 05   %05
6 06   %06
7 07   %07
8 08 backspace %08
9 09 tab %09
10 0a linefeed %0a
11 0b   %0b
12 0c   %0c
13 0d carriage return %0d
14 0e   %0e
15 0f   %0f
16 10   %10
17 11   %11
18 12   %12
19 13   %13
20 14   %14
21 15   %15
22 16   %16
23 17   %17
24 18   %18
25 19   %19
26 1a   %1a
27 1b   %1b
28 1c   %1c
29 1d   %1d
30 1e   %1e
31 1f   %1f
127 7f   %7f

非 ASCII 控制字符编码

这包括 ISO-Latin 集 80-FF 十六进制(十进制128255)的整个“上半部分”的编码。

十进制 十六进制值 字符 URL 编码
128 80 %80
129 81  %81
130 82 %82
131 83 ƒ %83
132 84 %84
133 85 %85
134 86 %86
135 87 %87
136 88 ˆ %88
137 89 %89
138 8a Š %8a
139 8b %8b
140 8c Œ %8c
141 8d  %8d
142 8e Ž %8e
143 8f  %8f
144 90  %90
145 91 %91
146 92 %92
147 93 %93
148 94 %94
149 95 %95
150 96 %96
151 97 %97
152 98 ˜ %98
153 99 %99
154 9a š %9a
155 9b %9b
156 9c œ %9c
157 9d  %9d
158 9e ž %9e
159 9f Ÿ %9f
160 a0   %a0
161 a1 ¡ %a1
162 a2 ¢ %a2
163 a3 £ %a3
164 a4 ¤ %a4
165 a5 ¥ %a5
166 a6 ¦ %a6
167 a7 § %a7
168 a8 ¨ %a8
169 a9 © %a9
170 aa ª %aa
171 ab « %ab
172 ac ¬ %ac
173 ad ­ %ad
174 ae ® %ae
175 af ¯ %af
176 b0 ° %b0
177 b1 ± %b1
178 b2 ² %b2
179 b3 ³ %b3
180 b4 ´ %b4
181 b5 µ %b5
182 b6 %b6
183 b7 · %b7
184 b8 ¸ %b8
185 b9 ¹ %b9
186 ba º %ba
187 bb » %bb
188 bc ¼ %bc
189 bd ½ %bd
190 be ¾ %be
191 bf ¿ %bf
192 c0 À %c0
193 c1 Á %c1
194 c2 Â %c2
195 c3 Ã %c3
196 c4 Ä %c4
197 c5 Å %c5
198 c6 Æ %v6
199 c7 Ç %c7
200 c8 È %c8
201 c9 É %c9
202 ca Ê %ca
203 cb Ë %cb
204 cc Ì %cc
205 cd Í %cd
206 ce Î %ce
207 cf Ï %cf
208 d0 Ð %d0
209 d1 Ñ %d1
210 d2 Ò %d2
211 d3 Ó %d3
212 d4 Ô %d4
213 d5 Õ %d5
214 d6 Ö %d6
215 d7 × %d7
216 d8 Ø %d8
217 d9 Ù %d9
218 da Ú %da
219 db Û %db
220 dc Ü %dc
221 dd Ý %dd
222 de Þ %de
223 df ß %df
224 e0 à %e0
225 e1 á %e1
226 e2 â %e2
227 e3 ã %e3
228 e4 ä %e4
229 e5 å %e5
230 e6 æ %e6
231 e7 ç %e7
232 e8 è %e8
233 e9 é %e9
234 ea ê %ea
235 eb ë %eb
236 ec ì %ec
237 ed í %ed
238 ee î %ee
239 ef ï %ef
240 f0 ð %f0
241 f1 ñ %f1
242 f2 ò %f2
243 f3 ó %f3
244 f4 ô %f4
245 f5 õ %f5
246 f6 ö %f6
247 f7 ÷ %f7
248 f8 ø %f8
249 f9 ù %f9
250 fa ú %fa
251 fb û %fb
252 fc ü %fc
253 fd ý %fd
254 fe þ %fe
255 ff ÿ %ff

保留字符编码

下表用于对保留字符进行编码。

十进制 十六进制值 字符 URL 编码
36 24 $ %24
38 26 & %26
43 2b + %2b
44 2c , %2c
47 2f / %2f
58 3a : %3a
59 3b ; %3b
61 3d = %3d
63 3f ? %3f
64 40 @ %40

不安全的字符编码

下表用于对不安全字符进行编码。

十进制 十六进制值 字符 URL 编码
32 20 space %20
34 22 " %22
60 3c < %3c
62 3e > %3e
35 23 # %23
37 25 % %25
123 7b { %7b
125 7d } %7d
124 7c | %7c
92 5c \ %5c
94 5e ^ %5e
126 7e ~ %7e
91 5b [ %5b
93 5d ] %5d
96 60 ` %60