There is a conflict between the need to be able to represent many
characters including spaces within a URI directly, and the need to
be able to use a URI in environments which have limited character
sets or in which certain characters are prone to corruption. This
conflict has been resolved by use of an hexadecimal escaping
method which may be applied to any characters forbidden in a given
context. When URLs are moved between contexts, the set of
characters escaped may be enlarged or reduced unambiguously.
The use of white space characters is risky in URIs to be printed
or sent by electronic mail, and the use of multiple white space
characters is very risky. This is because of the frequent
introduction of extraneous white space when lines are wrapped by
systems such as mail, or sheer necessity of narrow column width,
and because of the inter-conversion of various forms of white
space which occurs during character code conversion and the
transfer of text between applications. This is why the canonical
form for URIs has all white spaces encoded.