La sintaxis de las URL tiene una limitación en la cantidad de caracteres que se pueden usar: sólo admite caracteres ASCII. Además, algunos caracteres están reservados para funciones específicas, como la identificación de segmentos individuales para poder procesar una URL por partes.
Debido a que algunos caracteres no pueden formar parte de una URL, se creó un sistema de codificación de caracteres de 8 bits. Los códigos de URL son la traducción de caracteres dentro de las URL a una representación inequívoca y universalmente aceptada por los navegadores y servidores web.
Por ejemplo, el espacio no puede formar parte de una URL y se codifica con el código %20
; tampoco la coma (,
), que en su caso se codifica con el código %2C
. En cambio, el interrogante ?
es un carácter reservado que se usa de forma literal para indicar el comienzo de la cadena de una consulta.
La estructura de los códigos de URL es simple: se usa el símbolo %
seguido de la representación hexadecimal ASCII del carácter de reemplazo. Es por ello que estos códigos también son conocidos como códigos por ciento.
Es recomendable hacer uso de las bibliotecas de compilación de URL de la plataforma que se esté usando para codificar las URL de forma automática. De este modo se garantiza que las URL tengan todos los caracteres de escape correctamente codificados, evitando cualquier error.
Caracteres permitidos en las URL
Las URL sólo deben contener un subconjunto especial de caracteres ASCII, en el que forman parte los caracteres alfanuméricos conocidos (letras en minúscula, mayúscula y números), ciertos caracteres no reservados y algunos caracteres reservados para las funciones específicas.
Caracteres alfanuméricos:
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
Caracteres no reservados:
- _ . ~
Caracteres reservados:
! * ' ( ) ; : @ & = + $ , / ? # [ ]
Lista ASCII de códigos de URL no imprimibles
Rango de caracteres 00-1F hexadecimal (0-31 decimal) y 7F hexadecimal (127 decimal). Se trata de caracteres no imprimibles, pues sólo representan órdenes como sería un salto de línea o la eliminación de un carácter.
Hex. | Dec. | ASCII | Código URL |
---|---|---|---|
00 | 0 | NUL | %00 |
01 | 1 | SOH | %01 |
02 | 2 | STX | %02 |
03 | 3 | ETX | %03 |
04 | 4 | EOT | %04 |
05 | 5 | ENQ | %05 |
06 | 6 | ACK | %06 |
07 | 7 | BEL | %07 |
08 | 8 | BS | %08 |
09 | 9 | TAB | %09 |
0A | 10 | LF | %0A |
0B | 11 | VT | %0B |
0C | 12 | FF | %0C |
0D | 13 | CR | %0D |
0E | 14 | SO | %0E |
0F | 15 | SI | %0F |
10 | 16 | DLE | %10 |
11 | 17 | DC1 | %11 |
12 | 18 | DC2 | %12 |
13 | 19 | DC3 | %13 |
14 | 20 | DC4 | %14 |
15 | 21 | NAK | %15 |
16 | 22 | SYN | %16 |
17 | 23 | ETB | %17 |
18 | 24 | CAN | %18 |
19 | 25 | EM | %19 |
1A | 26 | SUB | %1A |
1B | 27 | ESC | %1B |
1C | 28 | FS | %1C |
1D | 29 | GS | %1D |
1E | 30 | RS | %1E |
1F | 31 | US | %1F |
7F | 127 | DEL | %7F |
Lista ASCII de códigos de URL imprimibles
Rango de caracteres 20-7E hexadecimal (32-126 decimal). En este rango se encuentran los caracteres imprimibles, que además de abarcar letras y números también contiene los caracteres especiales.
Hex. | Dec. | ASCII | Código URL |
---|---|---|---|
20 | 32 | SP | %20 |
21 | 33 | ! | %21 |
22 | 34 | " | %22 |
23 | 35 | # | %23 |
24 | 36 | $ | %24 |
25 | 37 | % | %25 |
26 | 38 | & | %26 |
27 | 39 | ' | %27 |
28 | 40 | ( | %28 |
29 | 41 | ) | %29 |
2A | 42 | * | %2A |
2B | 43 | + | %2B |
2C | 44 | , | %2C |
2D | 45 | - | %2D |
2E | 46 | . | %2E |
2F | 47 | / | %2F |
30 | 48 | 0 | %30 |
31 | 49 | 1 | %31 |
32 | 50 | 2 | %32 |
33 | 51 | 3 | %33 |
34 | 52 | 4 | %34 |
35 | 53 | 5 | %35 |
36 | 54 | 6 | %36 |
37 | 55 | 7 | %37 |
38 | 56 | 8 | %38 |
39 | 57 | 9 | %39 |
3A | 58 | : | %3A |
3B | 59 | ; | %3B |
3C | 60 | < | %3C |
3D | 61 | = | %3D |
3E | 62 | > | %3E |
3F | 63 | ? | %3F |
40 | 64 | @ | %40 |
41 | 65 | A | %41 |
42 | 66 | B | %42 |
43 | 67 | C | %43 |
44 | 68 | D | %44 |
45 | 69 | E | %45 |
46 | 70 | F | %46 |
47 | 71 | G | %47 |
48 | 72 | H | %48 |
49 | 73 | I | %49 |
4A | 74 | J | %4A |
4B | 75 | K | %4B |
4C | 76 | L | %4C |
4D | 77 | M | %4D |
4E | 78 | N | %4E |
4F | 79 | O | %4F |
50 | 80 | P | %50 |
51 | 81 | Q | %51 |
52 | 82 | R | %52 |
53 | 83 | S | %53 |
54 | 84 | T | %54 |
55 | 85 | U | %55 |
56 | 86 | V | %56 |
57 | 87 | W | %57 |
58 | 88 | X | %58 |
59 | 89 | Y | %59 |
5A | 90 | Z | %5A |
5B | 91 | [ | %5B |
5C | 92 | \ | %5C |
5D | 93 | ] | %5D |
5E | 94 | ^ | %5E |
5F | 95 | _ | %5F |
60 | 96 | ` | %60 |
61 | 97 | a | %61 |
62 | 98 | b | %62 |
63 | 99 | c | %63 |
64 | 100 | d | %64 |
65 | 101 | e | %65 |
66 | 102 | f | %66 |
67 | 103 | g | %67 |
68 | 104 | h | %68 |
69 | 105 | i | %69 |
6A | 106 | j | %6A |
6B | 107 | k | %6B |
6C | 108 | l | %6C |
6D | 109 | m | %6D |
6E | 110 | n | %6E |
6F | 111 | o | %6F |
70 | 112 | p | %70 |
71 | 113 | q | %71 |
72 | 114 | r | %72 |
73 | 115 | s | %73 |
74 | 116 | t | %74 |
75 | 117 | u | %75 |
76 | 118 | v | %76 |
77 | 119 | w | %77 |
78 | 120 | x | %78 |
79 | 121 | y | %79 |
7A | 122 | z | %7A |
7B | 123 | { | %7B |
7C | 124 | | | %7C |
7D | 125 | } | %7D |
7E | 126 | ~ | %7E |
Lista ASCII extendida (8 bits)
Rango de caracteres 80-FF hexadecimal (128-255 decimal). Este rango de datos es una versión extendida del código ASCII creada añadiendo un octavo bit y se creó para adaptarla a las peculiaridades de cada país. A pesar de esa variabilidad, los 128 caracteres iniciales siempre permanecerán intactos.
Hex. | Dec. | ASCII | Código URL |
---|---|---|---|
80 | 128 | € | %80 |
81 | 129 | | %81 |
82 | 130 | ‚ | %82 |
83 | 131 | ƒ | %83 |
84 | 132 | „ | %84 |
85 | 133 | … | %85 |
86 | 134 | † | %86 |
87 | 135 | ‡ | %87 |
88 | 136 | ˆ | %88 |
89 | 137 | ‰ | %89 |
8A | 138 | Š | %8A |
8B | 139 | ‹ | %8B |
8C | 140 | Œ | %8C |
8D | 141 | | %8D |
8E | 142 | Ž | %8E |
8F | 143 | | %8F |
90 | 144 | | %90 |
91 | 145 | ‘ | %91 |
92 | 146 | ’ | %92 |
93 | 147 | “ | %93 |
94 | 148 | ” | %94 |
95 | 149 | • | %95 |
96 | 150 | – | %96 |
97 | 151 | — | %97 |
98 | 152 | ˜ | %98 |
99 | 153 | ™ | %99 |
9A | 154 | š | %9A |
9B | 155 | › | %9B |
9C | 156 | œ | %9C |
9D | 157 | | %9D |
9E | 158 | ž | %9E |
9F | 159 | Ÿ | %9F |
A0 | 160 | %A0 | |
A1 | 161 | ¡ | %A1 |
A2 | 162 | ¢ | %A2 |
A3 | 163 | £ | %A3 |
A4 | 164 | ¤ | %A4 |
A5 | 165 | ¥ | %A5 |
A6 | 166 | ¦ | %A6 |
A7 | 167 | § | %A7 |
A8 | 168 | ¨ | %A8 |
A9 | 169 | © | %A9 |
AA | 170 | ª | %AA |
AB | 171 | « | %AB |
AC | 172 | ¬ | %AC |
AD | 173 | | %AD |
AE | 174 | ® | %AE |
AF | 175 | ¯ | %AF |
B0 | 176 | ° | %B0 |
B1 | 177 | ± | %B1 |
B2 | 178 | ² | %B2 |
B3 | 179 | ³ | %B3 |
B4 | 180 | ´ | %B4 |
B5 | 181 | µ | %B5 |
B6 | 182 | ¶ | %B6 |
B7 | 183 | · | %B7 |
B8 | 184 | ¸ | %B8 |
B9 | 185 | ¹ | %B9 |
BA | 186 | º | %BA |
BB | 187 | » | %BB |
BC | 188 | ¼ | %BC |
BD | 189 | ½ | %BD |
BE | 190 | ¾ | %BE |
BF | 191 | ¿ | %BF |
C0 | 192 | À | %C0 |
C1 | 193 | Á | %C1 |
C2 | 194 | Â | %C2 |
C3 | 195 | Ã | %C3 |
C4 | 196 | Ä | %C4 |
C5 | 197 | Å | %C5 |
C6 | 198 | Æ | %C6 |
C7 | 199 | Ç | %C7 |
C8 | 200 | È | %C8 |
C9 | 201 | É | %C9 |
CA | 202 | Ê | %CA |
CB | 203 | Ë | %CB |
CC | 204 | Ì | %CC |
CD | 205 | Í | %CD |
CE | 206 | Î | %CE |
CF | 207 | Ï | %CF |
D0 | 208 | Ð | %D0 |
D1 | 209 | Ñ | %D1 |
D2 | 210 | Ò | %D2 |
D3 | 211 | Ó | %D3 |
D4 | 212 | Ô | %D4 |
D5 | 213 | Õ | %D5 |
D6 | 214 | Ö | %D6 |
D7 | 215 | × | %D7 |
D8 | 216 | Ø | %D8 |
D9 | 217 | Ù | %D9 |
DA | 218 | Ú | %DA |
DB | 219 | Û | %DB |
DC | 220 | Ü | %DC |
DD | 221 | Ý | %DD |
DE | 222 | Þ | %DE |
DF | 223 | ß | %DF |
E0 | 224 | à | %E0 |
E1 | 225 | á | %E1 |
E2 | 226 | â | %E2 |
E3 | 227 | ã | %E3 |
E4 | 228 | ä | %E4 |
E5 | 229 | å | %E5 |
E6 | 230 | æ | %E6 |
E7 | 231 | ç | %E7 |
E8 | 232 | è | %E8 |
E9 | 233 | é | %E9 |
EA | 234 | ê | %EA |
EB | 235 | ë | %EB |
EC | 236 | ì | %EC |
ED | 237 | í | %ED |
EE | 238 | î | %EE |
EF | 239 | ï | %EF |
F0 | 240 | ð | %F0 |
F1 | 241 | ñ | %F1 |
F2 | 242 | ò | %F2 |
F3 | 243 | ó | %F3 |
F4 | 244 | ô | %F4 |
F5 | 245 | õ | %F5 |
F6 | 246 | ö | %F6 |
F7 | 247 | ÷ | %F7 |
F8 | 248 | ø | %F8 |
F9 | 249 | ù | %F9 |
FA | 250 | ú | %FA |
FB | 251 | û | %FB |
FC | 252 | ü | %FC |
FD | 253 | ý | %FD |
FE | 254 | þ | %FE |
FF | 255 | ÿ | %FF |