Encoding is the process of putting a sequence of characters such as letters, numbers and other special characters into a specialized format for efficient transmission.
Decoding is the process of converting an encoded format back into the original sequence of characters. It is completely different from Encryption which we usually misinterpret.
Encoding and decoding are used in data communications and storage. Encoding should NOT be used for transporting sensitive information.
URLs can only be sent over the Internet using the ASCII character-set and there are instances when URL contains special characters apart from ASCII characters, it needs to be encoded. URLs do not contain spaces and are replaced with a plus (+) sign or with %20.
The Browser (client side) will encode the input according to the character-set used in the web-page and the default character-set in HTML5 is UTF-8.
Following table shows ASCII symbol of the character and its equal Symbol and finally its replacement which can be used in URL before passing it to the server −
ASCII | Symbol | Replacement |
---|---|---|
< 32 | Encode with %xx where xx is the hexadecimal representation of the character. | |
32 | space | + or %20 |
33 | ! | %21 |
34 | " | %22 |
35 | # | %23 |
36 | $ | %24 |
37 | % | %25 |
38 | & | %26 |
39 | ' | %27 |
40 | ( | %28 |
41 | ) | %29 |
42 | * | * |
43 | + | %2B |
44 | , | %2C |
45 | - | - |
46 | . | . |
47 | / | %2F |
48 | 0 | 0 |
49 | 1 | 1 |
50 | 2 | 2 |
51 | 3 | 3 |
52 | 4 | 4 |
53 | 5 | 5 |
54 | 6 | 6 |
55 | 7 | 7 |
56 | 8 | 8 |
57 | 9 | 9 |
58 | : | %3A |
59 | ; | %3B |
60 | > | %3C |
61 | = | %3D |
62 | > | %3E |
63 | ? | %3F |
64 | @ | %40 |
65 | A | A |
66 | B | B |
67 | C | C |
68 | D | D |
69 | E | E |
70 | F | F |
71 | G | G |
72 | H | H |
73 | I | I |
74 | J | J |
75 | K | K |
76 | L | L |
77 | M | M |
78 | N | N |
79 | O | O |
80 | P | P |
81 | Q | Q |
82 | R | R |
83 | S | S |
84 | T | T |
85 | U | U |
86 | V | V |
87 | W | W |
88 | X | X |
89 | Y | Y |
90 | Z | Z |
91 | [ | %5B |
92 | \ | %5C |
93 | ] | %5D |
94 | ^ | %5E |
95 | _ | _ |
96 | ` | %60 |
97 | a | a |
98 | b | b |
99 | c | c |
100 | d | d |
101 | e | e |
102 | f | f |
103 | g | g |
104 | h | h |
105 | i | i |
106 | j | j |
107 | k | k |
108 | l | l |
109 | m | m |
110 | n | n |
111 | o | o |
112 | p | p |
113 | q | q |
114 | r | r |
115 | s | s |
116 | t | t |
117 | u | u |
118 | v | v |
119 | w | w |
120 | x | x |
121 | y | y |
122 | z | z |
123 | { | %7B |
124 | | | %7C |
125 | } | %7D |
126 | ~ | %7E |
127 | %7F | |
> 127 | Encode with %xx where xx is the hexadecimal representation of the character |